Last active
December 4, 2025 09:19
-
-
Save yokawasa/2cbc3e59175a8a7dc22ef1fcbb5252c9 to your computer and use it in GitHub Desktop.
API Vibe Coding Demo Prompts: Managing Postman Assets via the MCP Server
Japanese version
シンプルな「投票API」を作りたい。
次のような3つのエンドポイントをもつWeb APIを、シンプルな構成で実装してください。
データはメモリ上に保持して構いません(データベース不要)。テストや説明コメントもあると助かります。
### 実装してほしいAPIの仕様:
1. POST /polls
- 投票を作成する
- リクエストボディ例:
{ "question": "好きな言語は?", "options": ["Python", "Go", "Rust"] }
- レスポンス: 作成された投票のIDを含むオブジェクト
2. POST /polls/:id/vote
- 指定した投票に投票する
- リクエストボディ例: { "option": "Go" }
- 指定した選択肢に1票追加する。無効な選択肢にはエラー。
3. GET /polls/:id
- 指定した投票の集計結果を取得する
- レスポンス例:
{
"question": "好きな言語は?",
"options": [
{ "name": "Python", "votes": 1 },
{ "name": "Go", "votes": 3 },
{ "name": "Rust", "votes": 2 }
]
}
### 要件
- シンプルなフレームワークで実装してください(例:Express.js, FastAPI, Flask, Hono, etc)
- ストレージはメモリでOKです(サーバー再起動で消えてよい)
- 認証などは不要です
- JSONリクエスト/レスポンスでお願いします
最後に、実行方法(依存ライブラリ、起動方法)も記載してください。
English version
I want to create a simple Voting API.
Please implement a basic web API with the following 3 endpoints. It should be lightweight and self-contained. You may store data in memory (no database needed).
### API Requirements:
1. POST /polls
- Creates a new poll.
- Request body:
{ "question": "What's your favorite language?", "options": ["Python", "Go", "Rust"] }
- Response: should return a unique poll ID and poll details
2. POST /polls/:id/vote
- Cast a vote to an existing poll.
- Request body: { "option": "Go" }
- Should increment vote count. Return error for invalid options.
3. GET /polls/:id
- Returns the poll results.
- Response example:
{
"question": "...",
"options": [
{ "name": "Python", "votes": 1 },
{ "name": "Go", "votes": 3 },
{ "name": "Rust", "votes": 2 }
]
}
### Other Notes:
- Use a minimal framework like Express.js, Flask, FastAPI, or Hono.
- In-memory storage only (data resets on restart).
- No auth required.
- All request/response should be JSON.
- At the end, include instructions for how to run the server.
次のAPIの要件にもとづいてOpenAPI specを poll-apiディレクトリの中に作成して
----
1. POST /polls
- 投票を作成する
- リクエストボディ例:
{ "question": "好きな言語は?", "options": ["Python", "Go", "Rust"] }
- レスポンス: 作成された投票のIDを含むオブジェクト
2. POST /polls/:id/vote
- 指定した投票に投票する
- リクエストボディ例: { "option": "Go" }
- 指定した選択肢に1票追加する。無効な選択肢にはエラー。
3. GET /polls/:id
- 指定した投票の集計結果を取得する
- レスポンス例:
{
"question": "好きな言語は?",
"options": [
{ "name": "Python", "votes": 1 },
{ "name": "Go", "votes": 3 },
{ "name": "Rust", "votes": 2 }
]
ここで作成したPoll APIのOpenAPI仕様ファイル(openapi3.yml)を元に、既存のPostmanワークスペース(name: prototyping-demo) に「Poll API」という名前でPostman Specを作成してください
このワークスペース (name: prototyping-demo)にあるPostman Spec(name: Poll API)からPostmanコレクションを生成してください。オプション設定は下記でおねがい
- Tagsでフォルダわけ
- パラメーターの補完はExampleベース
Tip
Option in generating Postman Collection
{
"alwaysInheritAuthentication": true,
"enableOptionalParameters": true,
"folderStrategy": "Paths", // or "Tags"
"includeAuthInfoInExample": true,
"includeDeprecated": false,
"indentCharacter": "Space", // or "Tab"
"keepImplicitHeaders": false,
"parametersResolution": "Schema", // or "Example"
"requestNameSource": "Fallback" // or "URL"
}
このOpenAPIを元にexpress フレームワークのAPIコードを作ってください
-> app.jsが出力される
package インストールとサーバー起動
npm install express
node ./app.js
curl localhost:3000
todo-apiディレクトリにはTODO管理のCRUD APIのコードがあります。このコードの内容にもとづいてAPIのOpen API 定義を作成してください
Todo APIのOpenAPI仕様ファイル(openapi3.yml)を元に、既存のPostmanワークスペース「prototyping-demo」に「Todo API」という名前でPostman Specを作成してくださいNote
マルチタスクを依頼すると失敗することがある
このOpenAPI定義(openapi3.yaml)を元に次の作業を行ってください
- prototyping-demoという名前のPostmanワークスペースにPostman Specを作成
- Specを元にPostman コレクションを作成。次のオプションを指定する
- Tagsでフォルダわけ
- パラメーターの補完はExampleベース同じワークスペースにあるPostman Spec (name: Todo API)からPostman コレクションを生成してください。オプション設定は下記でおねがいします。
- Tagsでフォルダわけ
- パラメーターの補完はExampleベース
Note
下記のようなとき作成が失敗する可能性がある
- Optionの指示がないと失敗する
- elementType: collectionの指示がないと作成できない可能性がある。その場合は「elementType は collectionでおねがいします」のような指示を追加
Tip
Input
{
"elementType": "collection",
"name": "Todo API Collection",
"specId": "a3e57448-703d-423e-b8bf-7377c5d47413",
"options": {
"folderStrategy": "Tags",
"parametersResolution": "Example"
}
}同じPostman ワークスペース(name: prototyping-demo) に Todo API2という名前のSpecを作りました。このSpecを元に次の2つのことを実施して
- このレポジトリのopenapi3.ymlを更新
- Specを分析して、このレポジトリのAPIのソースコードに反映させる
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment