把用户当前选中的接口代码整理成最小可用的 OpenAPI 3 文档,并导入到 Apifox。
开始前先检查 skill 目录下的 config.json:
accessTokenprojectId如果 config.json 不存在,先在当前 skill 目录中创建该文件模板,再让用户填写。
如果 config.json 已存在但缺少以下任一字段,则必须先让用户补充到文件中后再继续:
accessTokenprojectId不能带着缺失配置往下执行。
配置文件路径:
当前 skill 目录下的 `config.json`
配置文件格式:
{
"accessToken": "",
"projectId": ""
}
命令行参数可覆盖配置文件中的值,但默认优先使用该配置文件。
以下参数不要写入配置文件,只在每次执行时按需传入:
moduleIdtargetEndpointFolderId导入位置规则:
moduleId 和 targetEndpointFolderId 都没有传入,则导入到默认模块moduleId,则导入到该模块下;如导入内容包含目录结构,会在该模块下生成对应目录moduleId 但未传入 targetEndpointFolderId,则导入到目标模块的根目录targetEndpointFolderId 必须和 moduleId 一起传入targetEndpointFolderId,则不要单独使用该参数在以下场景使用:
summary。paths[path][method] 条目。parameters,并标记 in: header。parameters。requestBody;至少补齐 required、content、schema 的最小结构。responses,若响应结构不清晰,至少给出一个最小 200 占位响应。config.json。accessToken 或 projectId,提示用户补充到文件中后再继续。python "当前 skill 目录/scripts/import_openapi.py" --input -
python "当前 skill 目录/scripts/import_openapi.py" \
--input - \
--module-id 123 \
--target-endpoint-folder-id 456
moduleId 或 targetEndpointFolderId 时,才把它们带到导入请求中。endpointOverwriteBehavior 和 schemaOverwriteBehavior 使用 Apifox 默认值 OVERWRITE_EXISTING。moduleId,则导入到目标模块的根目录。moduleId 和 targetEndpointFolderId,则导入到指定模块下的指定目录。targetEndpointFolderId,则忽略该参数,不单独使用。OVERWRITE_EXISTING、AUTO_MERGE、KEEP_EXISTING、CREATE_NEW。 覆盖现有接口/模型 -> OVERWRITE_EXISTING
自动合并/自动合并更改 -> AUTO_MERGE
跳过并保留/保留现有 -> KEEP_EXISTING
创建新的/保留现有并创建新的 -> CREATE_NEW
./.cursor/apifox/selected-endpoints.openapitmp.json 的位置;若项目没有 .cursor 目录,可直接放到当前项目根目录下的临时文件名。endpointOverwriteBehavior 和 schemaOverwriteBehavior 使用默认值 OVERWRITE_EXISTING。KEEP_EXISTING,Apifox 判断该路由已存在时会保留已有接口,不覆盖。endpointIgnored 属于预期行为。接口名称按以下优先级生成:
示例:
/* 查询用户详情 / -> 查询用户详情GET /users/{id} -> 获取用户详情POST /orders -> 创建订单按这个结构组织:
{
"openapi": "3.0.3",
"info": {
"title": "选中接口导入",
"version": "1.0.0"
},
"paths": {
"/example/path": {
"get": {
"summary": "示例接口名",
"operationId": "getExamplePath",
"tags": ["Example"],
"parameters": [
{
"name": "Authorization",
"in": "header",
"required": false,
"schema": {
"type": "string"
},
"description": "认证令牌"
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object"
}
}
}
},
"responses": {
"200": {
"description": "OK"
}
}
}
}
}
}
config.json 中的 accessToken 或 projectId 缺失,则必须先让用户补齐。config.json 不存在,则先创建模板文件,再让用户补充配置。moduleId 和 targetEndpointFolderId 只允许作为本次执行的可选参数传入,不写入配置文件。targetEndpointFolderId 必须搭配 moduleId 使用,不能单独使用。config.json 这类必要配置文件,执行过程中尽量不生成额外文件。默认使用辅助脚本,不手写 curl:
scripts/import_openapi.py该脚本会请求:
POST https://api.apifox.com/v1/projects/{projectId}/import-openapi并使用以下策略:
X-Apifox-Api-Version: 2024-03-28Authorization: Bearer endpointOverwriteBehavior:未指定时默认 OVERWRITE_EXISTING,指定时按用户描述映射schemaOverwriteBehavior:未指定时默认 OVERWRITE_EXISTING,指定时按用户描述映射只需要简要说明:
共 3 个版本