惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

G
Google Developers Blog
S
SegmentFault 最新的问题
Jina AI
Jina AI
D
DataBreaches.Net
人人都是产品经理
人人都是产品经理
罗磊的独立博客
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
爱范儿
爱范儿
大猫的无限游戏
大猫的无限游戏
C
Check Point Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
WordPress大学
WordPress大学
博客园 - 三生石上(FineUI控件)
B
Blog
博客园 - 【当耐特】
博客园 - Franky
M
MIT News - Artificial intelligence
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
L
LangChain Blog
MyScale Blog
MyScale Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
博客园 - 叶小钗
Last Week in AI
Last Week in AI
Engineering at Meta
Engineering at Meta

博客园 - 许仙儿

折痕 反·弱·无:道德经第四十章的因果链条与哲学闭环 从大括号圣战到人机掰手腕:AI时代,程序员的“累”换了个赛道 Git 文件忽略备忘录:`assume-unchanged` 完全指南 用go写一个微服务gPRC为主RESTful为辅 三号车间张三喜 为什么湖广不太吃鲤鱼 为什么夏天副高会导致伏旱,而冬天的西伯利亚高原又会带来寒流 普通RESTful和MCP调用对比 2026年放假安排 红楼梦龄官病死前和贾蔷同居的情节 古代的时辰,几更天与现在的时间对应关系是什么? 西游记结局评职称 生成一张图,苹果logo是透明冰块,安卓小机器人撒尿到苹果logo,冲出一个豁口 HL7v3和RIM是什么,和传统HL7,FHIR有什么关系 owl(Web Ontology Language)简介 关系型数据库 vs Elasticsearch 早上看到木蜂在抓取掉落到地上的国槐花,还一边打滚。它是否习性懒惰? Java SPI(Service Provider Interface)示例 常见古文中流行度和水平最高的前100首,按朝代分类 八卦的符号,读音,名称,代表的事务分别是什么 Spring Boot 中 JdbcTemplate、MyBatis 和 JPA 共用数据源的可行性 win10下python程序报错OPENSSL_Uplink(00007FFD0AC12FE8,08): no OPENSSL_Applink
API Blueprint​​ 是一种基于 ​​Markdown​​ 的轻量级 API 描述...
许仙儿 · 2025-05-19 · via 博客园 - 许仙儿

API Blueprint 是一种基于 Markdown 的轻量级 API 描述语言,用于设计、文档化和模拟 RESTful API。它通过简单的文本格式定义 API 的端点、请求/响应结构和示例,适合开发者快速编写和共享 API 规范。以下是详细说明和示例:


1. API Blueprint 核心特点
• 基于 Markdown:易读易写,无需复杂工具。

• 机器可解析:支持生成文档、Mock 服务或客户端代码。

• 工具链支持:

• Apiary:在线编辑和托管 API Blueprint。

• Drakov:根据文档生成 Mock 服务。

• Snowboard:渲染为 HTML 文档。


2. 基础语法结构

语法 作用 示例
# API 名称 # 用户管理系统
## 资源分组(如端点集合) ## 用户 [/users]
### 具体 HTTP 方法(GET/POST 等) ### 获取用户 [GET]
+ Request 定义请求(参数、Headers、Body) + Headers: Authorization
+ Response 定义响应(状态码、Body 示例) + 200 (application/json)

3. 实际示例
示例 1:简单的用户 API

# 用户管理系统

## 用户 [/users]

### 获取所有用户 [GET]
+ Response 200 (application/json)
    ```json
    [
        { "id": 1, "name": "John" },
        { "id": 2, "name": "Jane" }
    ]
    ```

### 创建用户 [POST]
+ Request (application/json)
    ```json
    { "name": "Alice" }
    ```

+ Response 201 (application/json)
    ```json
    { "id": 3, "name": "Alice" }
    ```

## 单个用户 [/users/{id}]

### 获取用户详情 [GET]
+ Parameters
    + id (number) - 用户ID

+ Response 200 (application/json)
    ```json
    { "id": 1, "name": "John" }
    ```

+ Response 404 (text/plain)
    ```text
    User not found
    ```

示例 2:带认证的订单 API

# 电商订单系统

## 订单 [/orders]

### 获取订单列表 [GET]
+ Headers
    Authorization: Bearer {token}

+ Response 200 (application/json)
    ```json
    [
        { "id": "ORD-001", "total": 99.99 },
        { "id": "ORD-002", "total": 149.99 }
    ]
    ```

### 提交订单 [POST]
+ Request (application/json)
    ```json
    {
        "items": [
            { "productId": 101, "quantity": 2 }
        ]
    }
    ```

+ Response 201 (application/json)
    ```json
    { "orderId": "ORD-003", "status": "processing" }
    ```

4. 工具链应用示例
(1) 使用 Apiary 在线渲染

  1. 将上述 Markdown 粘贴到 Apiary
  2. 自动生成交互式文档,支持直接测试 API。

(2) 使用 Drakov 启动 Mock 服务

# 安装 Drakov
npm install -g drakov

# 启动 Mock 服务(假设文件为 api.md)
drakov -f api.md -p 8080

访问 http://localhost:8080/users 将返回示例中的 JSON 数据。

(3) 生成 HTML 文档

# 安装 Snowboard
npm install -g snowboard

# 生成 HTML
snowboard html api.md -o output/

5. 对比其他描述语言

特性 API Blueprint OpenAPI (Swagger) RAML
语法 Markdown YAML/JSON YAML
学习曲线 低(适合快速编写) 中(结构复杂)
Mock 支持 通过 Drakov 通过 Swagger UI 通过 RAML Mock
代码生成 有限(需第三方工具) 完善(官方工具链) 支持

6. 适用场景
• 快速原型设计:用 Markdown 快速描述 API 并与团队共享。

• 前后端协作:前端开发者根据 Mock 服务提前开发。

• 轻量级文档:无需复杂配置,直接托管在 Git 仓库中。


总结
API Blueprint 通过 简洁的 Markdown 语法 和 丰富的工具链,为 RESTful API 设计提供了灵活高效的解决方案。适合中小型项目或敏捷开发团队,尤其适合偏好 Markdown 的开发者。