GH GambleHub

APIドキュメント:OpenAPI、 Swagger、 Postman

TL;DRについて

OpenAPI-真実のソース:contract→SDK→moki→tests→portal。
Swagger UI/Redoc-読み取り可能なショーケース;Postman-実行可能スクリプト。
私たちは、linter、 breaking-check、 exampleとerrorスキームを縫い、SDKとMockサーバーを生成し、バージョン管理されたdevポータルと「Sunset」を公開します。

1)目標と原則

契約1 (OpenAPI)。他のすべてが生成されます。
ドキュメントは実行可能です:サンプルリクエストはPostman/CLIでテストされます。
デフォルトのセキュリティ:エラースキーム、制限、認証。
バージョン管理とライフサイクル:'v1'/'v2'、 Deprecation/Sunset、 changelog。

2) OpenAPI構造(最小スケルトン)

yaml openapi: 3. 0. 3 info:
title: Payments API version: 1. 2. 0 description: >
Payment transactions: auth/capture/refund/payout. All responses contain trace_id.
servers:
- url: https://api. example. com/v1 tags:
- name: Payments
- name: Payouts components:
securitySchemes:
oauth2:
type: oauth2 flows:
clientCredentials:
tokenUrl: https://idp. example. com/oauth/token scopes:
payments: read: read payments: write: write payments schemas:
Error:
type: object required: [error, error_description, trace_id]
properties:
error: { type: string }
error_description: { type: string }
trace_id: { type: string, format: uuid }
security:
- oauth2: [payments:read]
paths:
/payments/{id}:
get:
summary: Receive payment tags: [Payments]
parameters:
- in: path name: id required: true schema: { type: string, format: uuid }
responses:
'200':
description: Content succeeded:
application/json:
schema: { $ref: '#/components/schemas/Payment' }
'404': { $ref: '#/components/responses/NotFound' }
components:
responses:
NotFound:
description: Content not found:
application/json:
schema: { $ref: '#/components/schemas/Error' }
ヒント:
  • スキーマ/responses/parameters/requestBodyを'components'に分解します。
  • securitySchemes (OAuth2/JWT/HMAC)を記述し、'paths'/' global'レベルで適用します。

3)エラー標準とメタデータ

単一のエラーオブジェクト(RESTとWebhookの両方):
yaml components:
schemas:
ApiError:
type: object required: [error, error_description, trace_id]
properties:
error: { enum: [invalid_request, not_found, rate_limited, internal] }
error_description: { type: string }
trace_id: { type: string, format: uuid }

常に429 (rate limit)、 401/403、およびヘッダ'X-RateLimit-'、 'Retry-After'を文書化します。

4)例: リクエスト/レスポンス、カール、SDK

各エンドポイントの場合:最小値と拡張例。
OpenAPIからカールとコードスニペット(JS/Python/Go)を生成します。手で書くな。
実際の値を適用する:UUID、 ISO-date、 「minor」(セント)の和。

拡張応答の例:
yaml examples:
ok:
value:
id: "pay_123"
amount_minor: 1099 currency: "EUR"
status: "captured"
created_at: "2025-11-03T12:34:56Z"

5) Swagger UI/Redoc-投稿する方法

2店舗をホスト:

1.Swagger UI(インタラクティブ、try-it-out)、

2.Redoc(読み取り可能な長いページ)。

含まれるもの:ダークテーマ、検索、バージョンセレクター('v1'、 'v2')、廃止バナー。

本番ドメインの「Try it out」を非表示にし、サンドボックスで許可します。

6)ポストマンコレクション: ライブスクリプト

OpenAPIからコレクションを自動生成し、環境変数('{{baseUrl}}'、 '{{accessToken}}')をサポートします。
プリテスト(トークンの取得)とポストテスト(ステータス/スキーマのアサート)を追加します。
フォルダに侵入:認証、支払い、支払い、Webhooks。
重要なルートのモニター(スケジュール)をエクスポートします。

テストテンプレート:
js pm. test("status is 200", () => pm. response. code === 200);
pm. test("schema valid", () => tv4. validate(pm. response. json(), pm. collectionVariables. get("schema_payment")));

7)モキとサンドボックス

OpenAPI (examples/' examples'/'examples')からモックサーバーを生成します。
モックの制限を示す:idempotency、 delays、 random errors (UATの場合)。
ドキュメントのサンドボックスとプロッドの違い(制限、データ、遅延)。

8) SDKの自動生成

OpenAPIから公式SDK (TypeScript、 Python、 Go)を生成します。
SDKリリースポリシー=SemVer、 APIバージョンマッピング。
README SDK:認証、リトレイ、idempotency、 429/Retry-After処理。

9)リンティング、破損点検およびCI

Linters:スペクトル(スタイル/アンチパターン)、openapi-diff(ブレイクチェック)。

CI:
  • 回路のバリデータ、
  • linter、
  • iocサーバーに対する契約テスト、
  • Swagger/Redoc/コレクションアセンブリ、
  • ポータルへの公開(ステージング→prod)、
  • 廃止/日没警報。

10)バージョン管理、廃止、日没

URIのバージョン('/v1')と'info。バージョン'。
廃止フラグ:'Deprecation: true'、 'Sunset: <RFC1123 date>'、 'Link: <changelog>'ヘッダー。
ポータル-切断前のバナーとタイマー。v1のPostmanコレクションは凍結されています(バグ修正のみ)。

11)ドックでのセキュリティとプライバシー

秘密、内部URL、実際のPAN/PIIを投稿しないでください。
機密フィールド-マスキングとスタブの例。
Swagger 「Try it out」→sandboxのみ、レート制限付き。
OAuth2/OIDC、 HMAC (webhook用)、mTLS(必要に応じて)を明確に説明します。

12)スタイルガイド契約書

リソース複数形:'/payments'、'/payouts'。
識別子:'pay _''、 po _'、 UUIDv4またはksuid。
日付-UTC ISO-8601;money-'amount_minor+currency'。
ペジネーション-カーソルベース('?cursor=&limit=')、安定したソート。
Idempotency-突然変異のための'Idempotency-Key'。
リストの安定したオブジェクト'meta'と'links'。

13)ドックの「Webhooks」セクション

イベントエンベロープ、HMAC署名、タイムウィンドウ、リトレイ、レスポンスコード付きのセクションを分離します。
ローカル署名検証用のイベントボディとPostmanコレクションのサンプル。
replay/DLQエンドポイントとUATチェックリスト。

14)開発ポータル: 役割と出版

セクション:概要、開始、認証、エンドポイント、例、Webhooks、 SDK、制限、Changelog。
役割:Steward API(標準)、ドメイン所有者(コンテンツ)、Tech Writer(編集)、DevRel(ポータル/コミュニティ)。
機能:スキーマフィールドから検索し、サンプルをコピーし「、リクエストを収集」→Postman。

15)チェックリスト

リリース前:
  • OpenAPIは有効です。エラーのないlinter。
  • 例は200/4xx/429/5xxをカバーしています。
  • セキュリティ:認証スキームの説明、秘密はありません。
  • Swagger/RedocとPostman (prod/sandbox)を形成。
  • SDKの生成と公開。
  • changelogとバージョンセレクタを更新しました。
減価償却のため:
  • 廃止/日没ヘッダーが含まれています。
  • ポータルのバナー、パートナーへの手紙。
  • 従来のコールメトリックはターゲットに該当します。

16)アンチパターン

真実の重複源(wiki ≠ OpenAPI)。
Postmanで実行せずに「目で」の例。
単一のエラーフォーマットがない。
URI/ドメインの代わりに「in query parameter」バージョン。
食べ物にアクセスでき、制限はありません。
一貫性のないページネーションと認証スキーム。

17)オートメーションのミニスニペット

OpenAPI(擬似)からPostmanコレクションを生成する:
bash openapi2postmanv2 -s openapi. yaml -o postman. json -p
ポータル公開(CIステップ、擬似YAML):
yaml steps:
- run: spectral lint openapi. yaml
- run: openapi-diff --fail-on-breaking main. yaml openapi. yaml
- run: redoc-cli bundle openapi. yaml -o site/redoc. html
- run: swagger-cli bundle openapi. yaml -o site/swagger. json
- run: openapi2postmanv2 -s openapi. yaml -o site/postman. json -p
- run: npm run deploy:portal

18)ローカライズと可用性

individual 'info。description_<lang>'または2つのポータルアセンブリ(EN/RU)。
用語用語(KYC/AML、ペイアウト、idempotency)。
コントラスト、キーボードナビゲーション、ダークテーマ。

概要

ドキュメントのパイプラインを組み立てる:単一のOpenAPI契約→lintersとbreaking-checks→Swagger/Redocショーケース→Postmanコレクションとモックサーバー→SDK→バージョンポータルとSunset。通常の例、単一のエラーフォーマット、および強力な認証は、ドキュメントを棚のPDFから作業統合ツールに変換し、パートナーを迅速化し、サポートコストを削減します。

Contact

お問い合わせ

ご質問やサポートが必要な場合はお気軽にご連絡ください。いつでもお手伝いします!

統合を開始

Email は 必須。Telegram または WhatsApp は 任意

お名前 任意
Email 任意
件名 任意
メッセージ 任意
Telegram 任意
@
Telegram を入力いただいた場合、Email に加えてそちらにもご連絡します。
WhatsApp 任意
形式:+国番号と電話番号(例:+81XXXXXXXXX)。

ボタンを押すことで、データ処理に同意したものとみなされます。