[英]Should a REST API reflect server-side application architecture
我正在編寫第一個Web應用程序。 只是想知道REST API設計的約定如何。 使其反映我的服務器端體系結構還是看起來更容易推理的更好?
我在考慮這樣做:
/serviceProvider/product
要么
/product/serviceProvider
我的服務器端體系結構都按服務提供商分為不同的模塊,但是它們都公開了產品查詢API。
理想情況下,應將API設計為對其使用者有意義。 根本沒有充分的理由來反映您的“服務器體系結構”。 實際上,這通常稱為泄漏抽象或泄漏API,被認為是不良做法,主要是因為您的應用程序結構可能會更改,然后才有以下可能的情況:
考慮到這些因素,您最好一開始就着重於易用性來設計API。 API的使用者不需要了解或關心您的應用程序體系結構。
我認為保持相同的體系結構很重要,因為您被迫提供簡單的API,它將在服務器端強制您簡化體系結構。 也就是說,您當然不希望公開任何服務器端方法,甚至不公開返回對象的每個服務器端屬性。
在Kaltura中,我們還相信采用平坦(非嵌套)路徑來簡化API。 有關更多准則,請參閱我的博客: http : //restafar.com/create-new-rest-server/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.