Open API与Internet上公开的REST API有何不同?在解释Open API时,它说明了某个API在LAN中公开而不是公开。那么到底有什么区别呢?
REST(代表性状态转移)描述了客户端和服务器之间如何交互的方式。REST通信通常基于HTTP协议(但这不是必需的),并且对资源URI发出请求,其中可能包含其他请求数据,并且回复可以是任何内容:HTML,XML,JSON,CSV,纯文本甚至是原始二进制数据。它不是具体的协议,而是协议可以使用的一种通信方式,类似于SOAP或WSDL。
要访问REST服务,客户端需要知道该服务提供的REST API,因此必须有文档,并且您需要根据该文档编写代码。使用OpenAPI,此步骤是自动化的。使用OpenAPI,存在一个可机器解析的文件,该文件解释了计算机REST API的工作方式。它告诉代码什么请求存在,期望什么答复。引用OpenAPI描述:
OpenAPI规范(OAS)为REST API定义了标准的,与编程语言无关的接口说明,使人和计算机都可以发现和理解服务的功能,而无需访问源代码,其他文档或检查网络流量。
https://github.com/OAI/OpenAPI-Specification
因此,如果您具有OpenAPI实现和REST API的OpenAPI描述文件,则可以将该描述文件提供给OpenAPI实现,并且此实现现在知道如何使用REST API,它可以为您生成易于阅读的文档,也可以甚至自动生成代码以使用不同语言的REST API。
可以将其与XML和DTD进行比较。XML就像REST,只是XML描述数据而不是通信。但是,存在数百万种不同的基于XML的数据格式,为了正确解析XML文件,代码需要知道存在哪些标签,哪些标签可能具有哪些子标签,哪些数据应作为标签内容(int,字符串, UUID等)。所有这些都由DTD(文档类型定义)定义,该DTD与OpenAPI描述文件相当。可以向理解DTD的代码提供DTD,然后解析声称符合该DTD的XML数据,并验证其是否正确(它是否仅使用允许的标签,标签交织有效,标签值正确等等) )。
例如,这是XHMTL的DTD:https://www.w3.org/TR/xhtml1/dtds.html#a_dtd_XHTML-1.0-Strict
归档时间: |
|
查看次数: |
3822 次 |
最近记录: |