REST API我具有支持一個DELETE動作的API方法:定製參數
api/jobs/:id
一旦在Job
模型的字段是一個reference
值(不一樣的:id
值)。
我需要能夠公開另一個DELETE動作,它允許第三方通過引用字段刪除作業。第三方將不知道工作:id
,因此需要使用他們確實知道的reference
字段。
什麼是揭露這種最好的方式?我應該如何處理這條路線?
謝謝!
REST API我具有支持一個DELETE動作的API方法:定製參數
api/jobs/:id
一旦在Job
模型的字段是一個reference
值(不一樣的:id
值)。
我需要能夠公開另一個DELETE動作,它允許第三方通過引用字段刪除作業。第三方將不知道工作:id
,因此需要使用他們確實知道的reference
字段。
什麼是揭露這種最好的方式?我應該如何處理這條路線?
謝謝!
我認爲你的問題不是關於執行而是REST式建築風格,否則填指正...
所以基本上好友Yaussy的評論是完全正確的。你有兩個選擇:
1)通過兩個不同的標識符
GET/DELETE api/externaljobs/:reference
和
GET/DELETE api/jobs/:id
在RESTful API訪問的實體每個實體必須有至少一個標識符是可以解決的,所以有兩個是沒有問題的。
2)讓合適的工作
取決於你的技術和業務限制外部客戶端搜索,你可以決定了外部客戶端必須尋找合適的工作,他能之前刪除它。
這可以通過
GET api/jobs?reference=1337
工作得到的結果:
<job>
[...]
<id>1234</id>
</job>
,並與調用的結果
DELETE api/jobs/1234
(你也可以只允許DELETE
對工作集合,所以外部客戶將能夠呼叫DELETE api/jobs?reference=1337
並且不會有兩個sen d兩個調用)
我個人比較喜歡第二種方法更多,因爲它看起來乾淨多了,因爲你想,一切皆有可能與基本的HTTP方法,你仍然有工作單位的只是一種表示,但兩者的它們在RESTful API中是可以接受的,並且依賴於我認爲的「REST設計品味」風格。
這裏有三個其他SO問題尋找到:
RESTful API behavior for entitys with two independent primary keys
REST API DESIGN - Getting a resource through REST with different parameters but same url pattern
Different RESTful representations of the same resource
您使用的超薄或您的API一些其他的框架? –
換句話說,你用什麼來構建REST接口或Web服務? PHP? Node.js的?別的東西? –
嗨@BuddyYaussy它使用Rails構建。 – cman77