2012-11-24 69 views
0

我正在設計一個服務,這將需要HTTP基本或摘要認證。我試圖權衡使用HTTP憑證作爲資源標識符的一部分的利弊。假設每個經過認證的用戶都有一個聯繫人列表。如果觸點可作爲:將HTTP憑證作爲資源標識符的一部分來執行是否是一種很好的做法?

https://myservice.com/contacts 

或者說:

https://myservice.com/users/112358/contacts 

在這種服務的情況下,用戶需要被隔離。從來沒有任何一個用戶需要訪問聯繫人或與其他用戶相關的任何其他信息。出於這個原因,第一種方法看起來更清晰,因爲它只在URL中公開必要的信息。另一方面,對於不同的HTTP憑證,https://myserevice.com/contacts將是一個不同的資源,我不確定這是一個好的設計。

回答

1

我會去https://myservice.com/users/112358/contacts

如果僅僅是因爲可能存在可能在某些時候被其他用戶查看的「下」用戶的資源。例如,用戶X能夠看到用戶112358的文檔。

URI中的一致性是一個優點。即使使用HATEOAS,URI的一致性並不是外部關注的問題,但它有助於增長和維護API的實現。

1

出於同樣的原因,您在問題結尾處引用/contacts將根據所提供的憑據來表示不同的資源,我建議您使用第二個更長的選項。用戶是否希望記住並在瀏覽器中輸入這些URL?如果不是,長度和'漂亮'不應該是一個重要的因素。

不要忘記,您可以隨時將/contacts的臨時重定向返回給該用戶自己的聯繫人。

相關問題