title: Mobile Order API
baseUri: http://localhost:8081/api
version: 1.0

uses:
assets: assets.lib.raml

annotationTypes:
monitoringInterval:
type: integer

/orders:
displayName: Orders
get:
is: [ assets.paging ]
(monitoringInterval): 30
description: Lists all orders of a specific user
queryParameters:
userId:
type: string
description: use to query all orders of a user
post:
/{orderId}:
get:
responses:
200:
body:
application/json:
type: assets.Order
application/xml:
type: !include schemas/order.xsd

RAML與OpenAPI:有什么區(qū)別?

  1. 格式:OpenAPI使用YAML或JSON來(lái)設(shè)計(jì)API,而RAML使用YAML或JSON以及XML擴(kuò)展來(lái)記錄API。這種格式的差異允許組織和呈現(xiàn)API文檔的方式略有不同。
  2. 版本控制:OpenAPI歷史悠久,并通過(guò)多個(gè)版本不斷發(fā)展,最新的是OpenAPI 3.0。另一方面,RAML在2013年發(fā)布了一個(gè)重大版本,目前處于1.0版本。版本控制的這種差異會(huì)影響每種語(yǔ)言中某些功能的可用性和成熟度。
  3. 工具生態(tài)系統(tǒng):與RAML相比,OpenAPI擁有更廣泛的工具生態(tài)系統(tǒng)。這包括從OpenAPI規(guī)范中生成服務(wù)器存根、客戶端庫(kù)和文檔的廣泛工具。RAML的工具生態(tài)系統(tǒng)雖然不那么廣泛,但仍然為各種任務(wù)提供工具,但可用的選項(xiàng)可能更少。
  4. 模式定義:OpenAPI使用JSON模式來(lái)描述和驗(yàn)證數(shù)據(jù)模型,而RAML使用一種名為JSON類型語(yǔ)言(JTL)的內(nèi)置模式定義語(yǔ)言。模式定義的這種差異可能會(huì)影響數(shù)據(jù)模型在API文檔中的定義和使用方式。
  5. 成熟度和采用:與RAML相比,OpenAPI擁有更大的社區(qū)和更廣泛的采用。這意味著OpenAPI規(guī)范更常被API開(kāi)發(fā)人員、工具提供商和API消費(fèi)者使用和支持。RAML雖然仍被廣泛使用,但社區(qū)可能略小,可用資源更少。
  6. 可擴(kuò)展性:OpenAPI提供了一個(gè)更可擴(kuò)展的框架,用于通過(guò)使用擴(kuò)展來(lái)添加自定義規(guī)范和注釋。RAML雖然也支持可擴(kuò)展性,但在某些領(lǐng)域添加自定義規(guī)格的選項(xiàng)可能更有限。

一句話:RAML面向‘設(shè)計(jì)者、API生產(chǎn)者’,OpenAPI面向‘使用者、API消費(fèi)者’

參考資料

RAML.org – RAML規(guī)范的官方網(wǎng)站
JSON-schema.org – JSON模式的主頁(yè)
基于RAML的API接口文檔管理
Introduction to RAML

一站搜索、試用、比較全球API!
冪簡(jiǎn)集成已收錄 5484種API!
試用API,一次比較多個(gè)渠道