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:有什么區別?

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

一句話:RAML面向‘設計者、API生產者’,OpenAPI面向‘使用者、API消費者’

參考資料

RAML.org – RAML規范的官方網站
JSON-schema.org – JSON模式的主頁
基于RAML的API接口文檔管理
Introduction to RAML

一站搜索、試用、比較全球API!
冪簡集成已收錄 4968種API!
試用API,一次比較多個渠道