自学成才的另一个缺点是你永远重新发明轮子。
我在RESTful架构上的工作越来越多,因此需要定义资源以及如何与资源进行交互。
是否有任何标准(和有效)设计方法或模板有助于枚举各种HTTP动词和资源的潜在响应,以帮助确保涵盖所有排列?
即使是基本的东西:
+----------------+---------------------------------------------+
| Resource Name: | |
+----------------+---------------------------------------------+
| HTTP METHODS |
+------------+-------------------------------------------------+
| Method | Supported |
+------------+-------------------------------------------------+
| GET | X |
| PUT | X |
| POST | |
| DELETE | |
+------------+-------------------------------------------------+
| RESPONSES |
+--------------------------------------------------------------+
| GET |
+--------------------------------------------------------------+
| Details of valid and necessary parameters for GETs and the |
| possible responses... |
| ... |
+--------------------------------------------------------------+
当然......我可以自己动手,但想知道是否有任何广泛认可的方法可供我采用。
答案 0 :(得分:1)
您可能想查看Web Application Description Language。一些REST框架甚至可以为您生成描述。我非常喜欢Apache Jersey(如果你可以接受Java来实现)。
答案 1 :(得分:1)
RestMS.org包含用于设计Restful API的标准。
它不应该被视为福音,但通过阅读单页RestTL(Restful Transport Layer)定义,您将学到很多东西。
答案 2 :(得分:1)
自从我发布以来,我最近发现了许多API设计师。其中一个(Mulesoft's Anypoint Platform)使用一种名为RAML的语言(RESTful API建模语言)。
答案 3 :(得分:0)
最广泛接受和理解的方法是让您的RESTful消息具有自我描述性:
GET /foo HTTP/1.1
HTTP/1.1 200 OK
Allow: GET, PUT
...
{"description": "A foo. PUT a new representation to overwrite this one.", ...}
/foo
是“资源名称”,“允许”标题是“HTTP方法”的列表,响应正文描述“回复”信息,无论是作为散文还是作为一组控件(像HTML表单一样。)
为确保涵盖所有排列,请编写测试。
答案 4 :(得分:0)
据我所知,没有标准的REST API设计方法。人们经常花太多时间讨论是否应该使用PUT或POST来获取特定方法。我认为最重要的是保持简单,与动词和格式的使用保持一致,并将其记录得非常好。
我认为你不应该试图涵盖HTTP动词和资源的所有排列,因为很可能是you ain't gonna need it。
如果您正在寻找模板,请查看REST API guidelines from Atlassian。 根据我的经验,维基比任何一种从代码自动生成文档的工具都要好得多。
答案 5 :(得分:0)
没有标准的方法来描述RESTful Application / API的设计,因为REST是一种架构原则+方法,而不是一个定义良好的框架或设计模式。
您可以使用任何工具来描述您的资源及其互动(如果需要,可以从简单的电子表格到UML图表)。只要你能读出结果文件中的3个主要元素,任何东西都会起作用:
从这一点开始,您将能够创建应用程序的内部URL方案,创建公共URL等...