hap-api-doc-updater
npx skills add https://github.com/garfield-bb/hap-skills-collection --skill hap-api-doc-updater
Agent 安装分布
Skill 文档
HAP API ææ¡£æ´æ°å¨
æ¤æè½ä¸é¨ç¨äºç»´æ¤åæ´æ°æéäº HAP (Host Application Platform) ç OpenAPI 3.0 æ¥å£ææ¡£,æ¯æä¸è±æåè¯ææ¡£çåæ¥ç®¡çã
使ç¨åºæ¯
å¨ä»¥ä¸æ åµä¸ä½¿ç¨æ¤æè½:
- ç¨æ·éè¦å¨ HAP ææ¡£ä¸æ°å¢æ¥å£
- ç¨æ·éè¦ä¿®æ¹ç°ææ¥å£çå®ä¹ãåæ°æååºç»æ
- ç¨æ·éè¦å é¤åºå¼çæ¥å£
- ç¨æ·éè¦ç¡®ä¿ä¸è±æææ¡£ä¿æåæ¥
- ç¨æ·æå°”HAP API ææ¡£”ã”æ¥å£ææ¡£”ã”OpenAPI”ã”æ°å¢æ¥å£”ã”æ´æ°æ¥å£”çå ³é®è¯
ææ¡£ç»æ
HAP API ææ¡£é¡¹ç®å å«ä¸¤ç±»ææ¡£:
1. ç»ç»ææ API ææ¡£
ä½äºé¡¹ç®æ ¹ç®å½:
en/– è±æçç»ç»æææ¥å£ææ¡£zh-Hans/– 䏿çç»ç»æææ¥å£ææ¡£
2. åºç¨ API ææ¡£ (v3-beta)
ä½äº application ç®å½:
application/en/– è±æçåºç¨æ¥å£ææ¡£application/zh-Hans/– 䏿çåºç¨æ¥å£ææ¡£
æ¯ä¸ªææ¡£ç®å½å å«:
openapi.yaml # 主æä»¶,å®ä¹ tagsãpaths è·¯ç±
description.md # ææ¡£æè¿°
index.html # Redoc é¢è§é¡µé¢
paths/ # æ¥å£å®ä¹ç®å½
âââ user/ # æåè½æ¨¡ååç±»
âââ department/
âââ ...
schemas/ # æ°æ®æ¨¡åç®å½
âââ base/ # åºç¡æ¨¡å
âââ user/ # ç¨æ·ç¸å
³æ¨¡å
âââ ...
工使µç¨
æ°å¢æ¥å£
-
ç¡®å®æ¥å£ç±»ååä½ç½®
- 询é®ç¨æ·æ¥å£å±äºåªä¸ªæ¨¡å (user/department/app ç)
- ç¡®å®æ¯ç»ç» API è¿æ¯åºç¨ API
- ç¡®å® HTTP æ¹æ³ (GET/POST/PUT/DELETE ç)
-
æ¶éæ¥å£ä¿¡æ¯
- æ¥å£è·¯å¾ (å¦
/v2/user/getExternalPortalUsers) - æ¥å£æè¦åæè¿°
- 请æ±åæ° (query/body/path parameters)
- ååºç»æ
- æ¯å¦éè¦é´æåæ° (appKey, sign, timestamp ç)
- æ¥å£è·¯å¾ (å¦
-
å建æä»¶ç»æ
å¯¹äºæ¯ä¸ªè¯è¨çæ¬ (en å zh-Hans),æ§è¡ä»¥ä¸æä½:
a. å建 path å®ä¹æä»¶
- ä½ç½®:
paths/{module}/{operationName}.yaml - å å«: HTTP æ¹æ³ãtagsãsummaryãdescriptionãparameters/requestBodyãresponses
- åè
references/path_template.yamlä¸ç模æ¿
b. å建 schema æä»¶ (å¦éè¦)
- è¯·æ± schema:
schemas/{module}/{operationName}Request.yaml - ååº schema:
schemas/{module}/{operationName}Response.yaml - æ°æ®å¯¹è±¡:
schemas/{module}/{objectName}.yaml - åè
references/schema_template.yamlä¸ç模æ¿
c. æ´æ° openapi.yaml
- å¨ paths é¨åæ·»å æ°è·¯ç±
- 妿æç¹æ®ç server é ç½®,æ·»å servers åæ®µ
- ç¡®ä¿ææ¨¡ååç»,ä¿ææä»¶æ´æ´
- ä½ç½®:
-
éªè¯ä¸è´æ§
- ç¡®ä¿ä¸è±æçæ¬ç»æä¸è´
- æ£æ¥ææ $ref å¼ç¨è·¯å¾æ£ç¡®
- éªè¯å¿ å¡«åæ®µå¨ required æ°ç»ä¸
ä¿®æ¹æ¥å£
-
å®ä½æä»¶
- ä½¿ç¨ Grep å·¥å ·æç´¢æ¥å£è·¯å¾æ operationId
- æ¾å°å¯¹åºç path æä»¶åç¸å ³ schema æä»¶
-
åæ¥ä¿®æ¹
- åæ¶ä¿®æ¹ä¸è±æçæ¬çå¯¹åºæä»¶
- ä¿æåæ®µç»æä¸è´,ä» ç¿»è¯ description å example
-
æ´æ°å ³èæä»¶
- å¦æä¿®æ¹äº schema å¼ç¨,æ£æ¥å ¶ä»ä½¿ç¨è¯¥ schema çæ¥å£
- å¦æä¿®æ¹äºè·¯å¾,åæ¥æ´æ° openapi.yaml
å 餿¥å£
-
ä» openapi.yaml ä¸ç§»é¤è·¯ç±
- åæ¶å é¤ä¸è±æçæ¬
-
å é¤ç¸å ³æä»¶
- å é¤ paths æä»¶
- æ£æ¥ schemas æ¯å¦è¢«å ¶ä»æ¥å£ä½¿ç¨,å¦ææ²¡æåå é¤
-
éªè¯å¼ç¨
- ç¡®ä¿æ²¡æå ¶ä»å°æ¹å¼ç¨å·²å é¤çæä»¶
忥ä¸è±æææ¡£
-
对æ¯ç»æ
- æ£æ¥ openapi.yaml ä¸ç paths æ¯å¦ä¸è´
- å¯¹æ¯æä»¶ç®å½ç»æ
-
忥差å¼
- å¤å¶ç¼ºå¤±çæä»¶
- ç¿»è¯æè¿°æ§ææ¬
- ä¿æææ¯åæ®µ (type, format, required ç) å®å ¨ä¸è´
éè¦è§è
å½åè§è
- æä»¶å½å: 使ç¨é©¼å³°å½åæ³,å¦
getExternalPortalUsers.yaml - operationId: 䏿件åä¿æä¸è´
- schema æä»¶: ä½¿ç¨æè¿°æ§åç§°,å¦
externalPortalUser.yaml
è·¯å¾å¼ç¨è§è
- ä» openapi.yaml å¼ç¨ paths:
'./paths/{module}/{file}.yaml' - ä» paths å¼ç¨ schemas:
'../../schemas/{module}/{file}.yaml' - ä» schemas å¼ç¨å
¶ä» schemas:
'./{file}.yaml'
请æ±/ååºè§è
GET 请æ±: ä½¿ç¨ parameters å®ä¹æ¥è¯¢åæ°
parameters:
- name: pageIndex
in: query
required: true
schema:
type: integer
POST 请æ±: ä½¿ç¨ requestBody å®ä¹è¯·æ±ä½
requestBody:
required: true
content:
application/json:
schema:
$ref: '../../schemas/user/requestSchema.yaml'
é´æåæ°
ç»ç» API é常éè¦ä»¥ä¸åºç¡åæ°:
appKey– åºç¨å¯é¥sign– ç¾åtimestamp– æ¶é´æ³projectId– é¡¹ç® ID
å¯ä»¥å¼ç¨åºç¡ schema: $ref: ../../schemas/base/request/baseQueryAppkey.yaml
ååºç»æ
æ åååºæ ¼å¼:
type: object
properties:
code:
type: integer
description: ç¶æç ,1表示æå
message:
type: string
description: ç¶ææè¿°
data:
type: object/array
description: è¿åæ°æ®
工使£æ¥æ¸ å
å¨å®æææ¡£æ´æ°å,æ§è¡ä»¥ä¸æ£æ¥:
- ä¸è±æçæ¬é½å·²æ´æ°
- openapi.yaml ä¸çè·¯ç±å·²æ·»å /ä¿®æ¹/å é¤
- paths æä»¶å·²å建/ä¿®æ¹/å é¤
- å¿ è¦ç schemas æä»¶å·²å建
- ææ $ref å¼ç¨è·¯å¾æ£ç¡®
- å¿ å¡«åæ°å¨ required æ°ç»ä¸å£°æ
- description æä¾äºæ¸ æ°ç说æ
- example æä¾äºææç示ä¾å¼
- ä¸è±æåæ®µç»æå®å ¨ä¸è´ (ä» æè¿°ä¸å)
åèèµæ
详ç»ç模æ¿å示ä¾è¯·æ¥ç:
references/path_templates.md– æ¥å£å®ä¹æ¨¡æ¿references/schema_templates.md– æ°æ®æ¨¡å模æ¿references/common_patterns.md– å¸¸è§æ¨¡å¼åè
é¢è§ææ¡£
ä¿®æ¹å®æå,å¯ä»¥ä½¿ç¨ Live Server é¢è§:
- å¨ VS Code ä¸å³é®ç¹å»
zh-Hans/index.htmlæen/index.html - éæ© “Open With Live Server”
- æµè§å¨å°èªå¨æå¼å¹¶æ¾ç¤º Redoc 渲æçææ¡£