Skip to content

Instantly share code, notes, and snippets.

@yokawasa
Last active December 4, 2025 09:19
Show Gist options
  • Select an option

  • Save yokawasa/2cbc3e59175a8a7dc22ef1fcbb5252c9 to your computer and use it in GitHub Desktop.

Select an option

Save yokawasa/2cbc3e59175a8a7dc22ef1fcbb5252c9 to your computer and use it in GitHub Desktop.
API Vibe Coding Demo Prompts: Managing Postman Assets via the MCP Server

Poll API coding using Postman MCP (Minimal) - API schema first approach

Generate code from requirements

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.

Generate OpenAPI spec from requirements

次の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 }
      ]

Add OpenAPI to Postman Spec Hub

ここで作成したPoll APIのOpenAPI仕様ファイル(openapi3.yml)を元に、既存のPostmanワークスペース(name: prototyping-demo) に「Poll API」という名前でPostman Specを作成してください

Generate Postman Collection from 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"
}

Generate API codes from OpenAPI spec

このOpenAPIを元にexpress フレームワークのAPIコードを作ってください

-> app.jsが出力される

package インストールとサーバー起動

npm install express
node ./app.js
curl localhost:3000

Todo API coding using Postman MCP (Minimal) - Code first approach

Create OpenAPI spec from source codes

todo-apiディレクトリにはTODO管理のCRUD APIのコードがあります。このコードの内容にもとづいてAPIのOpen API 定義を作成してください

Add OpenAPI to Postman Spec Hub

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ベース

Generate Collection from Postman Spec Hub

同じワークスペースにある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"
  }
}

Update API code based upon Spec update

同じ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