簡體   English   中英

REST API是否應反映服務器端應用程序體系結構

[英]Should a REST API reflect server-side application architecture

我正在編寫第一個Web應用程序。 只是想知道REST API設計的約定如何。 使其反映我的服務器端體系結構還是看起來更容易推理的更好?

我在考慮這樣做:

/serviceProvider/product

要么

/product/serviceProvider

我的服務器端體系結構都按服務提供商分為不同的模塊,但是它們都公開了產品查詢API。

理想情況下,應將API設計為對其使用者有意義。 根本沒有充分的理由來反映您的“服務器體系結構”。 實際上,這通常稱為泄漏抽象或泄漏API,被認為是不良做法,主要是因為您的應用程序結構可能會更改,然后才有以下可能的情況:

  • 您需要更改您的API,當某人已經在使用它時,這是一項艱巨的任務;
  • 您的API不再反映您的應用程序結構,從而導致不一致;
  • 向您的應用程序結構或數據庫架構公開可能會對安全性產生影響。

考慮到這些因素,您最好一開始就着重於易用性來設計API。 API的使用者不需要了解或關心您的應用程序體系結構。

我認為保持相同的體系結構很重要,因為您被迫提供簡單的API,它將在服務器端強制您簡化體系結構。 也就是說,您當然不希望公開任何服務器端方法,甚至不公開返回對象的每個服務器端屬性。

在Kaltura中,我們還相信采用平坦(非嵌套)路徑來簡化API。 有關更多准則,請參閱我的博客: http : //restafar.com/create-new-rest-server/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM