Upgrade to Pro — share decks privately, control downloads, hide ads and more …

OpenAPI の導入による CAM の Schema 駆動開発 実例3選

OpenAPI の導入による CAM の Schema 駆動開発 実例3選

先日 v3.1 がリリースされた OpenAPI ですが、ドキュメント化やモックサーバーの立ち上げなど、API 開発における様々なシーンでのデファクトスタンダードとなりつつあります。この登壇では、CAM における OpenAPI の活用について、レガシー環境への導入や応用の実例を3つ解説していきます。

matsuhei

May 18, 2022
Tweet

Other Decks in Technology

Transcript

  1. Agenda 1. OpenAPIとは 2. OpenAPIの導入による Schema駆動開発 実例3選 a. レガシーサービスへの適応編 b.

    クライアントライブラリ自動生成編 c. OSS Vironにおける管理画面への活用編 3. まとめ
  2. { "name": "松本 涼平", "company": "株式会社CAM", "since": "fourth year", "work":

    "BackendEngineer💻", "skills": ["Go", "Node.js", "Java"], "sports": "Futsal⚽", "latestHobby": "Billiards🎱" } Introduction
  3. API仕様書 { "name": "matsumoto", "work": "BackendEngineer", "nickname": "matsuhei" } 実際の返却値

    { "name": "matsumoto", "work": "BackendEngineer" } ⚠ nickname が 存在しない!? 仕様書と実装が乖離している
  4. API仕様書 { "name": "matsumoto", "work": "BackendEngineer", "nickname": "matsuhei" } 実際の返却値

    { "name": "matsumoto", "work": "BackendEngineer" } ⚠ nickname が 存在しない!? 仕様書と実装が乖離している ⚠障害や開発遅延の原因に…
  5. ⚠ ageの型が違 う!? 理想の requestBody { "name": "matsumoto", "work": "BackendEngineer",

    "age": 26 } 実際の requestBody { "name": "matsumoto", "work": "BackendEngineer", "age": "26歳" } バリデーションが未実装
  6. ⚠ ageの型が違 う!? 理想の requestBody { "name": "matsumoto", "work": "BackendEngineer",

    "age": 26 } 実際の requestBody { "name": "matsumoto", "work": "BackendEngineer", "age": "26歳" } バリデーションが未実装 ⚠障害や開発遅延の原因に…
  7. v1 → v2 実際にレガシー環境に導入する上で 困ったこと 移管時に不要なAPI を確認可能 APIの精査が容易🎉 スモールリプレイス により

    事故リスクの軽減🎉 スモールリプレイスを計画🚧 APIをV1からV2へ V2側にMiddlewareを実装で解消