我是基于REST Web服务的新手,并试图了解如何为JSON返回的REST服务创建合同。
根据我的理解,任何基于XML的SOAP / REST服务都将具有WSDL文档。
为基于JSON的REST服务创建了哪些文档?
答案 0 :(得分:2)
REST Web服务没有像wsdl这样的自动说明文档,您需要知道Web服务的工作原理,阅读随附的文档。通常它适用于常见请求。假设您有一个产品REST Web服务,您可以:
GET /products -> read all products
GET /products/1 -> read the product 1
POST /products -> create a new product
PUT /products/1 -> update product 1
DELETE /products/1 -> delete product 1
但您必须知道需要向任何请求发送哪些参数。我希望我很清楚...
答案 1 :(得分:1)
每个HTTP响应都包含HTTP标头中的元数据。其中一个HTTP标头是ContentType
。内容类型标识媒体类型,该类型是响应有效负载必须符合的合同。媒体类型的规范可以在http://www.iana.org/assignments/media-types/media-types.xhtml
SOAP和HTTP(作为应用程序协议)之间的主要区别之一是SOAP在设计时定义了契约,而在HTTP中,契约在响应消息中指定,因此它可以随时间变化。因此,客户端必须阅读每个响应的内容类型,以了解如何处理响应。
答案 2 :(得分:0)
有WADL(http://en.wikipedia.org/wiki/Web_Application_Description_Language)虽然它没有像SOAP的WSDL那么多使用。用Java EE编写的REST服务自动将其生成为... / application.wadl,据我所知,PHP支持非常差。
答案 3 :(得分:0)
正如其他人提到的那样,RESTful服务不需要Web服务定义,但是,如果您想为API创建类似的内容,则行业标准是Swagger / OpenAPI,尽管GraphQL模式也已成为事实上的标准。
您还可以探索其他一些选项(see wikipedia)。
以下是最常见的选项列表: