ワンクリックで
api-development
API 開發流程引導技能,協助開發者選擇合適的開發流程(API First 或 Code First),並提供 OpenAPI 規格管理、程式碼產生等自動化支援。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
API 開發流程引導技能,協助開發者選擇合適的開發流程(API First 或 Code First),並提供 OpenAPI 規格管理、程式碼產生等自動化支援。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
| name | api-development |
| description | API 開發流程引導技能,協助開發者選擇合適的開發流程(API First 或 Code First),並提供 OpenAPI 規格管理、程式碼產生等自動化支援。 |
API 開發流程引導技能,協助開發者選擇合適的開發流程(API First 或 Code First),並提供 OpenAPI 規格管理、程式碼產生等自動化支援。
協助開發者根據專案需求選擇合適的 API 開發流程:
task codegen-api-servertask codegen-api-client@workspace 我想要開發新的 API 端點
使用 api-development 開發 API
graph TD
A[啟動 Skill] --> B{詢問 API 開發流程}
B -->|API First| C[檢查 OpenAPI 規格狀態]
B -->|Code First| D[跳過規格,直接實作]
C -->|已定義| E[提醒已存在定義]
C -->|需更新| F[協助更新 OpenAPI 規格]
C -->|尚未定義| G[協助建立 OpenAPI 規格]
F --> H[執行 codegen-api-server]
G --> H
H --> I[產生 Controller 骨架]
I --> J[提供 Controller 實作範本]
J --> K[詢問是否產生 Client SDK]
K -->|是| L[執行 codegen-api-client]
K -->|否| M[完成]
L --> M
D --> N[提供 Code First 指導]
N --> O[提醒後續需手動維護 OpenAPI]
O --> M
請選擇 API 開發流程:
1️⃣ API First(推薦)
✅ API 文件與實作 100% 同步
✅ 前後端可並行開發
✅ 自動產生 Client SDK
✅ 編譯時契約檢查
⚠️ 需先設計 API 規格
適用場景:
- 前後端分離且團隊並行開發
- 需要提供 Client SDK 給第三方
- API 穩定性要求高
- 多個客戶端(Web、Mobile、Desktop)
2️⃣ Code First
✅ 快速啟動開發
✅ 直接實作程式碼
⚠️ 需手動維護 API 文件
⚠️ 文件與實作可能不同步
適用場景:
- 快速原型驗證
- 內部小型專案
- API 結構仍在快速變動中
- 單人開發或小團隊
請確認 OpenAPI 規格狀態:
1️⃣ 已定義
- doc/openapi.yml 已包含此 API 的端點定義
- 我只需要產生程式碼
2️⃣ 需要更新
- doc/openapi.yml 存在但需要加入新的端點
- 我需要協助修改規格
3️⃣ 尚未定義
- doc/openapi.yml 不存在或沒有此端點
- 我需要從頭建立規格
請選擇需要實作的分層(可多選):
☑️ Controller
- HTTP 請求處理與路由
- 請求驗證
- HTTP 狀態碼對應
☑️ Handler
- 業務邏輯處理
- 流程協調
- 錯誤處理與結果封裝
☑️ Repository
- 資料存取邏輯
- EF Core 操作
- 資料庫查詢封裝
提示:通常需要三層都實作以完成完整功能
是否需要產生 Client SDK?
1️⃣ 是,產生 Client SDK
- 自動產生強型別 API 客戶端
- 前端可直接使用
- 完整的 IntelliSense 支援
- 產生位置:JobBank1111.Job.Contract/AutoGenerated/
2️⃣ 否,暫不產生
- 僅產生 Server Controller
- 後續可隨時執行 task codegen-api-client
paths:
/api/v1/members:
post:
summary: 建立新會員
operationId: CreateMember
tags:
- Member
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateMemberRequest'
responses:
'201':
description: 會員建立成功
content:
application/json:
schema:
$ref: '#/components/schemas/MemberResponse'
'400':
description: 請求驗證失敗
content:
application/json:
schema:
$ref: '#/components/schemas/Failure'
'409':
description: Email 已被使用
content:
application/json:
schema:
$ref: '#/components/schemas/Failure'
'500':
description: 內部伺服器錯誤
content:
application/json:
schema:
$ref: '#/components/schemas/Failure'
components:
schemas:
CreateMemberRequest:
type: object
required:
- email
- name
properties:
email:
type: string
format: email
example: "user@example.com"
name:
type: string
minLength: 1
maxLength: 100
example: "張三"
phone:
type: string
pattern: '^\d{10}$'
example: "0912345678"
MemberResponse:
type: object
properties:
id:
type: string
format: uuid
email:
type: string
name:
type: string
createdAt:
type: string
format: date-time
# 執行 Taskfile 命令
task codegen-api-server
# 產生位置
# JobBank1111.Job.WebAPI/Contract/AutoGenerated/
# 執行 Taskfile 命令
task codegen-api-client
# 產生位置
# JobBank1111.Job.Contract/AutoGenerated/
產生的 Controller 骨架需要實作自動產生的介面,整合以下元件:
完整實作範本請參考:assets/controller-template.cs
| 比較項目 | API First(推薦) | Code First |
|---|---|---|
| 文件同步 | ✅ 自動 100% 同步 | ❌ 需手動維護 |
| 前後端協作 | ✅ 可並行開發 | ⚠️ 需等後端完成 |
| 契約保證 | ✅ 編譯時檢查 | ❌ 執行時才發現 |
| Client SDK | ✅ 自動產生 | ❌ 需手動實作 |
| 開發速度 | ⚠️ 需先設計 API | ✅ 快速啟動 |
| 維護成本 | ✅ 低(自動同步) | ❌ 高(手動維護) |
| 團隊協作 | ✅ 優秀 | ⚠️ 一般 |
| 適用場景 | 中大型專案、團隊協作 | 小型專案、快速原型 |
編輯 doc/openapi.yml,新增 API 端點定義。
task codegen-api-server
產生檔案:
JobBank1111.Job.WebAPI/Contract/AutoGenerated/IMemberApi.cs(介面)建立 MemberController.cs 實作自動產生的介面:
[ApiController]
[Route("api/v1/members")]
public class MemberController(MemberHandler handler) : ControllerBase, IMemberApi
{
public async Task<IActionResult> CreateMember(
CreateMemberRequest request,
CancellationToken cancellationToken = default)
{
var result = await handler.CreateMemberAsync(request, cancellationToken);
return result.Match(
success => StatusCode(201, success),
failure => StatusCode(
FailureCodeMapper.ToHttpStatusCode(failure.Code),
failure)
);
}
}
task codegen-api-client
產生檔案:
JobBank1111.Job.Contract/AutoGenerated/IMemberApi.cs(Client 介面)JobBank1111.Job.Contract/AutoGenerated/MemberApiClient.cs(Client 實作)❌ 錯誤:無法產生程式碼
執行命令:task codegen-api-server
錯誤訊息:OpenAPI 規格格式錯誤
建議:
1. 檢查 doc/openapi.yml 格式是否正確
2. 使用線上驗證工具:https://editor.swagger.io/
3. 確認 YAML 縮排正確(使用空格,不使用 Tab)
❌ 錯誤:Controller 編譯失敗
錯誤訊息:CS0535: 'MemberController' does not implement interface member 'IMemberApi.CreateMember'
建議:
1. 確認方法簽章與介面定義完全一致
2. 檢查參數名稱、類型、回傳類型
3. 參考範本:assets/controller-template.cs
handler - Handler 業務邏輯實作error-handling - Result Pattern 錯誤處理bdd-testing - API 端點測試feature-development-agent - 使用本 skill 的完整功能開發流程Cucumber/Gherkin BDD 最佳實踐指導技能,提供 Gherkin 撰寫規範、情境設計原則、Discovery Workshop 引導與常見反模式識別,協助團隊撰寫高品質的行為驅動開發規格。
BDD 測試實作技能,協助開發者使用 Reqnroll 撰寫行為驅動開發測試,包含 Gherkin 語法、測試步驟實作與 Docker 測試環境設定。
EF Core 操作與最佳化技能,協助開發者正確使用 Entity Framework Core,包含 DbContextFactory 模式、查詢最佳化、Migration 管理與反向工程。
錯誤處理與 Result Pattern 技能,協助開發者實作統一的錯誤處理機制,包含 Result Pattern 應用、Failure 物件建立與分層錯誤處理策略。
Handler 業務邏輯層實作技能,協助開發者實作符合專案規範的 Handler,包含業務邏輯處理、流程協調、Result Pattern 錯誤處理與跨 Repository 操作。
中介軟體實作技能,協助開發者實作符合專案規範的中介軟體,包含 TraceContext 管理、Exception Handling、Request Logging 與管線配置。