METHOD /api/path
【免费下载链接】mesheryMeshery, the cloud native manager项目地址: https://gitcode.com/GitHub_Trending/me/meshery
Description: 端点功能的简要描述。
Authentication: Required / Not required
Parameters:
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | yes | 资源标识符 |
| page | query | int | no | 页码(默认:1) |
Request Body(如适用):
{ "field": "type — description" }Response200 OK:
{ "field": "type — description" }Error Responses:
| Status | Description |
|---|---|
| 400 | 请求体无效 |
| 401 | 需要认证 |
| 404 | 资源不存在 |
### 三.1 实战示例:`POST /api/pattern/deploy` 将上述模板套用于 `PatternFileHandler`,可以得到如下文档条目: ```markdown ### `POST /api/pattern/deploy` **Description**: 部署(或取消部署)一个 Meshery 设计文件(Design/Pattern File)到已连接的 Kubernetes 集群。 **Authentication**: Required **Parameters**: | Name | In | Type | Required | Description | |------|----|------|----------|-------------| | dryRun | query | bool | no | 是否仅执行 dry-run,不真正部署(默认 false) | | skipCRD | query | bool | no | 是否跳过 CRD 与 Operator 的安装(默认 false) | | verify | query | bool | no | 是否执行验证阶段(默认 false) | | upgrade | query | bool | no | 是否升级已存在的 Helm Release(默认 false) | **Request Body**: ```json { "patternFile": "string — 设计文件内容", "patternId": "uuid — 设计 ID" }Response200 OK:
{ "summary": "object — 按设计名汇总的部署结果(含每个组件在每个集群上下文上的部署消息)", "viewLink": "string — 跳转至 MeshMap 查看该设计的 URL", "designName": "string — 设计名称", "designId": "uuid — 设计 ID" }Error Responses:
| Status | Description |
|---|---|
| 400 | 请求体无法解析 / 设计文件无法解析 |
| 401 | 需要认证 |
| 500 | 部署过程中发生错误(如无法获取 K8s 配置) |
注意:`GET` 与 `DELETE` 共享同一路径时(如 `/api/pattern/{id}`),应分别使用 `### GET /api/pattern/{id}` 与 `### DELETE /api/pattern/{id}` 记录各自的参数与语义。 ### 三.2 响应字段背后的源码依据 响应结构可以从 [design_engine_handler.go](https://link.gitcode.com/i/45844d3a0787e54756f35ea62892a7b3) 中还原:成功路径将 `response`(`map[string]interface{}`,即 `_processPattern` 返回的按组件名组织的结果)放入 `summary`,同时附加 `viewLink`、`designName`、`designId` 三个字段,最后通过 `json.NewEncoder(rw).Encode(response)` 输出。这正对应 SKILL.md 中「从 Go struct 标签还原真实 JSON 结构」的准则——文档内容必须来自代码,而非凭空想象。 ## 四、GraphQL 文档化:查询、变更与输入类型 SKILL.md 要求:**对于 GraphQL,记录查询(queries)与变更(mutations)及其输入/输出类型**。 Meshery 的 GraphQL schema 位于 [server/internal/graphql/schema/schema.graphql](https://link.gitcode.com/i/284ddc4a7b91aec65c3393ef320a5a41),路由入口在 [server/router/server.go](https://link.gitcode.com/i/b2e4e1ee6ea33789045d9fc99a49e486): ```go gMux.Handle("/api/system/graphql/query", h.ProviderMiddleware(h.AuthMiddleware(h.SessionInjectorMiddleware(h.GraphqlMiddleware(g)), models.ProviderAuth))).Methods("GET", "POST") gMux.Handle("/api/system/graphql/playground", ...).Methods("GET", "POST")Query类型(schema.graphql)中的典型字段:
| Query | 参数 | 说明 |
|---|---|---|
getAvailableAddons | filter: ServiceMeshFilter | 查询可用的附加组件(如 Prometheus、Grafana) |
getControlPlanes | filter: ServiceMeshFilter | 查询集群中服务网格的控制平面 |
getDataPlanes | filter: ServiceMeshFilter | 查询数据平面信息 |
resyncCluster | selector: ReSyncActions, k8scontextID: String! | 重新同步集群发现(带@KubernetesMiddleware指令) |
getPerfResult | id: ID! | 查询单条性能测试结果 |
fetchPatterns | selector: PageFilter! | 分页获取设计(Patterns) |
Mutation类型(schema.graphql):
type Mutation { changeOperatorStatus(input: OperatorStatusInput): Status! @KubernetesMiddleware changeAdapterStatus(input: AdapterStatusInput): Status! @KubernetesMiddleware }文档中记录变更时,应同时给出其input类型定义(schema 已强制要求「所有 mutation 使用名为input的单一输入字段」)。例如AdapterStatusInput(schema.graphql):
input AdapterStatusInput { targetStatus: Status! # 期望的 Operator 状态 targetPort: String! # 适配器将部署到的端口 adapter: String! # 待部署的适配器名称 }【免费下载链接】mesheryMeshery, the cloud native manager项目地址: https://gitcode.com/GitHub_Trending/me/meshery
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考