问题
对于一个前后端分离,或者拥有多个客户端的项目,如果没有一个通用且不限语言的规范来描述服务器的API,当你尝试让AI来接入API时以实现你的功能时,将会异常繁琐。
如果后端接口发生调整,也需要手动口述或临时组织文本,向AI描述修改的详情和数据结构。
好处
1.只需要同步该文件,即可确保AI在实现各个客户端的时候,使用一致的格式和数据结构来调用后端API
2.OpenAPI受到广泛兼容,便于API调试工具(比如Apifox、postman等)和测试平台直接导入
我是怎么做的
- 环境:后端使用了proto来定义接口协议(不使用proto的也可以通过Skill或项目规则来生成
openapi.yaml)
我使用了proto提供的OpenAPI插件,每次编译协议,都会帮我生成openapi.yaml文件。我只需要将该文件同步到前端或其他客户端项目下,告诉AI通过<api名称或路径>实现XXX功能,界面要求xxx,接口文档位于openapi.yaml
编译命令(省略了具体编程语言的编译选项)
protoc --proto_path=./api \
--openapi_out=fq_schema_naming=true,default_response=false:. \
$(API_PROTO_FILES)
ps:API_PROTO_FILES是proto文件的路径
我不使用proto怎么办?
如果你的项目不使用protobuffer(proto),也可以在后端项目中,通过包含但不限于以下两种方式来生成和维护openapi.yaml文件:
1.使用项目规则 在后端项目的项目规则中,要求在接口变更时更新位于根目录的openapi.yaml文件(鉴于不同模型偏好不同,在指定文件时,最好是可以直接指定路径,避免不同模型偏好不同重复生成,这里演示放在根目录下)
2.使用skill 在后端项目中,使用可以生成并维护openapi.yaml文件的skill来辅助你(比如:openapi-spec-generation)