YC科技资讯网

OpenSpec和Github Copilot 实践SDD开发模式-4

本文介绍在安装和初始化 OpenSpec 后的使用方法。本文将通过一个完整的实战示例,演示如何使用 OpenSpec 规

本文介绍在安装和初始化 OpenSpec 后的使用方法。

本文将通过一个完整的实战示例,演示如何使用 OpenSpec 规范驱动开发框架,配合 GitHub Copilot,从零开始创建一个基于 Spring Boot、MySQL、MyBatis、JDK 21 的后端 API 接口——用户管理模块(包含增删改查功能)。

一、OpenSpec 工作流:创建用户 API

阶段一:创建变更提案

前面已经完成了。

阶段二:实施开发

前面已经完成了。

阶段三:验证与归档

验证前面生成的代码,可以使用 Postman 或 curl 测试接口。

接口的使用,可以查看自动生成的 HELP.md 文档:

Base path: /api/v1/users

Endpoints:

* POST /api/v1/users
* GET /api/v1/users/{id}
* GET /api/v1/users?page=1&size=20
* PUT /api/v1/users/{id}
* PATCH /api/v1/users/{id}
* DELETE /api/v1/users/{id}

Request example (create user):

```json
{
"username": "alice",
"email": "alice@example.com",
"phone": "13800000001",
"gender": 1,
"birthday": "1998-06-01",
"province": "Jiangsu",
"address": "Nanjing",
"status": 1
}
```

Success response example:

```json
{
"code": 0,
"message": "OK",
"data": {
"id": 1,
"username": "alice",
"email": "alice@example.com",
"phone": "13800000001",
"gender": 1,
"birthday": "1998-06-01",
"province": "Jiangsu",
"address": "Nanjing",
"status": 1,
"createTime": "2026-04-08T18:00:00",
"updateTime": "2026-04-08T18:00:00"
}
}
```

Error response example (duplicate phone):

```json
{
"code": 2004,
"message": "手机号已存在",
"data": null
}
```

1. 创建用户

curl -X POST "http://localhost:8080/api/v1/users" \
-H "Content-Type: application/json" \
-d '{
"username": "alice",
"email": "alice@example.com",
"phone": "13800000001",
"gender": 1,
"birthday": "1998-06-01",
"province": "Jiangsu",
"address": "Nanjing",
"status": 1
}'

2. 查询用户

按照ID 查询用户:

curl -X GET "http://localhost:8080/api/v1/users/1"

查询所有用户:

curl -X GET "http://localhost:8080/api/v1/users"

3. 更新用户

全量更新用户:

curl -X PUT "http://localhost:8080/api/v1/users/1" \
-H "Content-Type: application/json" \
-d '{
"username": "alice_updated",
"email": "alice.updated@example.com",
"phone": "13800000011",
"gender": 2,
"birthday": "1999-01-01",
"province": "Zhejiang",
"address": "Hangzhou",
"status": 1
}'

部分更新用户:

curl -X PATCH "http://localhost:8080/api/v1/users/1" \
-H "Content-Type: application/json" \
-d '{
"province": "Shanghai",
"address": "Pudong New Area"
}'

二、归档变更

验证通过后,接下来执行归档变更。

在 Copilot Chat 中输入:

/opsx-archive add-user-management-api

归档操作会将 changes/add-user-management-api/specs/ 中的规范增量合并到主规范 openspec/specs/ 目录,并将变更文件夹移至 changes/archive/,完成整个开发流程。

最后显示归档完成,如下所示: