6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

IBM BobとAPI Connectで時刻取得APIを作成してみた

6
Last updated at Posted at 2026-03-11

はじめに

API ConnectでAPIを開発する際には、OpenAPI(YAML)によるAPI定義の作成やポリシー設定が必要になります。
しかし、これらを手作業で作成すると、記述ミスや設定漏れが発生しやすく、API定義の作成に手間がかかることがあります。

そこで今回は、IBM Bobを利用し、自然言語の指示(プロンプト)からAPI Connect用のAPI定義をどこまで生成できるのかを試してみました。
具体的には、セキュリティ設定やレスポンス生成のロジックを含むAPI定義を、AIにどこまで正確に作成させることができるのかを検証します。

この記事では、Bobに自然言語でAPI仕様を指示し、OpenAPI(YAML)を生成してAPI Connectにインポートすることで、現在時刻を返却するシンプルなAPIを作成します。
さらに、生成されたAPIをAPI Connect上で公開し、実際にリクエストを送って動作を確認します。なお今回はバックエンドサーバーを用意せず、API Connectのみを使用してAPIを実装します。

前提条件

  • IBM API Connect の環境が利用可能であること
  • IBM Bobが利用可能であること

今回作るAPI

今回は時刻を返すとてもシンプルなAPIを作成します。

GET /time/current

レスポンス例

{
  "timestamp": "2026-03-09T06:05:50.507Z",
  "timezone": "UTC",
  "message": "Current system time retrieved successfully"
}

実装手順

1. BobにAPIからOpenAPI YAMLを生成する

まずIBM Bobに以下のプロンプトを入力します。

# 指示
IBM API Connectで現在時刻を返却するAPIを作成してください。

# 注意事項
この手順では、バックエンドサーバーを別途用意することなく、APICのSet-variableポリシーを使用して直接レスポンスを生成します。

1. APIの基本定義 (Design)
Title: Get System Time
Name: get-system-time
Base Path: /time
Version: 1.0.0

2. パスの設定
Paths セクションで新しいパス /current を追加します。
Operations で GET メソッドを選択します。

3. アセンブル・ロジックの構築 (Assemble)
Set-variableポリシーで現在時刻を含むJSONレスポンスを生成する実装にしてください。
レスポンスボディの設定 (message.body)

Type: set

Value:
'{"timestamp":"$(request.date)","timezone":"UTC","message":"Current system time retrieved successfully"}'

4. セキュリティとして、API Key (Client ID) による認証を追加してください。

Bobは Planモード で実装プランを作成してくれます。

image.png

プランを確認して承認をすると、OpenAPIのYAMLを生成してくれます。
image.png

生成されたget-system-time-api.yamlのファイルが、API ConnectにインポートするOpenAPI定義になります。

ポイント

APIの基本情報
APIの基本情報を定義します。

title: Get System Time
name: get-system-time
basePath: /time
version: 1.0.0

ここではAPIの名前やベースパスを定義しています。

パスの設定
新しいパス/currentを追加します。
GET /time/currentが今回作成するAPIのエンドポイントになります。

Set-variableポリシー
今回のAPIではバックエンドサーバーを用意しません。
代わりにSet-variableポリシーを使用してAPI Connectが直接レスポンスを生成します。

message.body

これはAPIレスポンスの本文を意味します。レスポンスのJSONは次のように設定しています。

{"timestamp":"$(request.date)","timezone":"UTC","message":"Current system time retrieved successfully"}

API Key認証
APIを安全に公開するためAPI Key(Client ID)認証を設定します。
API呼び出し時には次のヘッダーを指定します。

X-IBM-Client-Id

2. IBM API Connectにインポートする

次にBobが作成したYAMLをAPI Connectにインポートします。

まず、IBM API Connectへアクセス
image.png

「開発」へ移動
image.png

image.png

「追加」を選択 → 「API」を選択
image.png

「OpenAPI 3.0」を選択し、「既存のOpenAPI」を選択して「次へ」
image.png

先ほどBobが作成したget-system-time-api.yamlをアップロード
image.png

YAMLが正常に検証されたら完了
image.png

3. APIを公開する

APIの編集を開きます
image.png
image.png

「テスト」タブを開き、ターゲット構成を選択
image.png

ここで Auto Publish がOFFの場合はONに変更します。
image.png

APIがオンラインになるとテストが可能になります。

4. APIをテストする

「送信」をクリックしてAPIを呼び出します。
image.png

正常に動作すると次のレスポンスが返ります。

{
  "timestamp": "2026-03-09T06:05:50.507Z",
  "timezone": "UTC",
  "message": "Current system time retrieved successfully"
}

image.png

まとめ

今回は IBM BobとAPI Connect を使用して、現在時刻を返却するシンプルなAPIを作成しました。

Bobを活用することで、API仕様からOpenAPI YAMLを生成できるため、手作業でYAMLを書く場合と比べてミスを減らしながらAPI作成を進めることができました。
また、API ConnectにインポートするだけでAPIを作成できるため、API開発を効率的に進めることができました。

さらにAPI Connectでは、

  • OpenAPIをそのままAPIとして公開できる
  • GUIでAPIの設定や管理ができる
  • セキュリティやポリシーを簡単に適用できる

といった特徴があり、APIの開発から公開、管理までを一貫して行うことができます。
BobとAPI Connectを組み合わせることで、APIの設計から公開までをよりスムーズに進めることができると感じました。

無料ではじめてみましょう

無料トライアルでは30日間40Bobコインまで利用ができます。申し込みはこちら
Bobcoinが足りなくなったらこちらで少額から購入できます。

参考リンク

6
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?