[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CZKZFMDPJENMF0H3PM6K4W":3,"skill-same:01M6CZKZFMDPJENMF0H3PM6K4W":55},{"skillNo":4,"name":5,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":14,"categories":15,"keywords":26,"publishedAt":30,"linkOnly":31,"markdownContent":32,"markdownBody":32,"frontMatter":33,"refName":34,"commitSha":35,"skillDirectory":36,"forksCount":37,"repositoryHtmlUrl":38,"repositoryHomepageUrl":6,"ownerHtmlUrl":39,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":40,"install":41,"resources":54},"01M6CZKZFMDPJENMF0H3PM6K4W","api-designer",null,"Testing-itay\u002FDevTools-Security-Lab","Testing-itay","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F230151326?v=4","01M6CZH4Q5Z571N5ZRZWMQ3YBS","01M6CZH4W55EHV4P1D3SNNRXSS",0,"MIT","https:\u002F\u002Fgithub.com\u002FTesting-itay\u002FDevTools-Security-Lab\u002Fblob\u002Fmain\u002F.cursor\u002Fskills\u002Fapi-designer\u002FSKILL.md",[16,21],{"categoryNo":17,"categoryName":18,"taxonomyType":19,"taxonomyTypeDesc":20},"01JBSEEDCAT000000000000010","后端与接口","SCENARIO","使用场景",{"categoryNo":22,"categoryName":23,"taxonomyType":24,"taxonomyTypeDesc":25},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[27,28,29],"api","designer","api designer","2026-11-10 10:12:30",false,"\n\n\n\n---\nname: API Designer\ndescription: Design and document RESTful API endpoints following OpenAPI standards.\n---\n\n# API Designer Skill\n\nDesign and document RESTful APIs that are consistent, predictable, and well-documented.\n\n## REST Conventions\n\n- Use nouns for resources (e.g., `\u002Fusers`, `\u002Forders`), verbs for actions only when necessary (e.g., `\u002Forders\u002F{id}\u002Fcancel`).\n- Prefer plural resource names. Use kebab-case or camelCase consistently per project convention.\n- Apply HTTP methods correctly: GET (read), POST (create), PUT (replace), PATCH (partial update), DELETE (remove).\n\n## Status Codes\n\n- 200 OK: Successful GET, PUT, PATCH.\n- 201 Created: Successful POST with Location header for new resource.\n- 204 No Content: Successful DELETE or update with no body.\n- 400 Bad Request: Validation errors, malformed input.\n- 401 Unauthorized: Missing or invalid authentication.\n- 403 Forbidden: Authenticated but not authorized.\n- 404 Not Found: Resource does not exist.\n- 409 Conflict: State conflict (e.g., duplicate, version mismatch).\n- 422 Unprocessable Entity: Semantic validation failures.\n- 500 Internal Server Error: Unexpected server errors.\n\n## Pagination Patterns\n\n- Use `limit` and `offset` or `page` and `page_size` for list endpoints.\n- Return metadata: `total`, `has_next`, `next_cursor` where applicable.\n- Prefer cursor-based pagination for large, frequently changing datasets.\n- Document default and max page sizes in OpenAPI.\n\n## OpenAPI Output\n\nProduce valid OpenAPI 3.x specs with schemas, examples, error responses, and security schemes. Include request\u002Fresponse examples for each endpoint.\n",{},"main","1188d0dcbd4e64256d35bfe14c955ba1c541b1de",".cursor\u002Fskills\u002Fapi-designer",13,"https:\u002F\u002Fgithub.com\u002FTesting-itay\u002FDevTools-Security-Lab","https:\u002F\u002Fgithub.com\u002FTesting-itay","2026-10-16 16:13:27",{"source":7,"skillName":5,"commands":42,"prompt":52,"zipAvailable":53},[43,46,49],{"tool":44,"command":45},"npx","npx skills add Testing-itay\u002FDevTools-Security-Lab --skill api-designer",{"tool":47,"command":48},"bunx","bunx skills add Testing-itay\u002FDevTools-Security-Lab --skill api-designer",{"tool":50,"command":51},"pnpm","pnpm dlx skills add Testing-itay\u002FDevTools-Security-Lab --skill api-designer","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FTesting-itay\u002FDevTools-Security-Lab\u002Fblob\u002Fmain\u002F.cursor\u002Fskills\u002Fapi-designer\u002FSKILL.md",true,[],[56,65,74,83,92,97],{"skillNo":57,"name":58,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":59,"categories":60,"keywords":61,"publishedAt":30},"01M6CZR9VVRMS754ZKH7NPNMB1","sds-plugin-a11y-check","https:\u002F\u002Fgithub.com\u002FTesting-itay\u002FDevTools-Security-Lab\u002Fblob\u002Fmain\u002Fsrc\u002FnewDIR\u002Fbundles\u002Fplugins\u002Fsds-frontend-plugin\u002Fskills\u002Fsds-plugin-a11y-check\u002FSKILL.md",[],[62,63,64],"sds plugin a11y check","check","plugin",{"skillNo":66,"name":67,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":68,"categories":69,"keywords":70,"publishedAt":30},"01M6CZR8FQ30QGEV5D3SB6DDKP","endpoint-review","https:\u002F\u002Fgithub.com\u002FTesting-itay\u002FDevTools-Security-Lab\u002Fblob\u002Fmain\u002Fsrc\u002FnewDIR\u002Fbundles\u002Fplugins\u002Fpython-api-plugin\u002Fskills\u002Fendpoint-review\u002FSKILL.md",[],[71,72,73],"endpoint review","endpoint","review",{"skillNo":75,"name":76,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":77,"categories":78,"keywords":79,"publishedAt":30},"01M6CZR6TYBN5EMBM70E096E66","schema-draft","https:\u002F\u002Fgithub.com\u002FTesting-itay\u002FDevTools-Security-Lab\u002Fblob\u002Fmain\u002Fsrc\u002FnewDIR\u002Fbundles\u002Fplugins\u002Fpython-api-plugin\u002Fagents\u002Fpy-plugin-endpoint-designer\u002Fskills\u002Fschema-draft\u002FSKILL.md",[],[80,81,82],"schema","schema draft","draft",{"skillNo":84,"name":85,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":86,"categories":87,"keywords":88,"publishedAt":30},"01M6CZR5SDWF91FHDK54XHXS67","doc-outline","https:\u002F\u002Fgithub.com\u002FTesting-itay\u002FDevTools-Security-Lab\u002Fblob\u002Fmain\u002Fsrc\u002FnewDIR\u002Fbundles\u002Fplugins\u002Fai-documentation-workflow\u002Fskills\u002Fdoc-outline\u002FSKILL.md",[],[89,90,91],"doc outline","outline","doc",{"skillNo":93,"name":58,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":94,"categories":95,"keywords":96,"publishedAt":30},"01M6CZR3Z4WZCBA5FVJZB65B1Y","https:\u002F\u002Fgithub.com\u002FTesting-itay\u002FDevTools-Security-Lab\u002Fblob\u002Fmain\u002Fsrc\u002FnewD\u002FnewDIR\u002Fbundles\u002Fplugins\u002Fsds-frontend-plugin\u002Fskills\u002Fsds-plugin-a11y-check\u002FSKILL.md",[],[62,63,64],{"skillNo":98,"name":67,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":99,"categories":100,"keywords":101,"publishedAt":30},"01M6CZR2PR7T4XYSJJWQYYPXVW","https:\u002F\u002Fgithub.com\u002FTesting-itay\u002FDevTools-Security-Lab\u002Fblob\u002Fmain\u002Fsrc\u002FnewD\u002FnewDIR\u002Fbundles\u002Fplugins\u002Fpython-api-plugin\u002Fskills\u002Fendpoint-review\u002FSKILL.md",[],[73,71,72]]