https://github.com/maxmellon/introduction-agreed
https://github.com/maxmellon/introduction-agreed
Last synced: 8 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/maxmellon/introduction-agreed
- Owner: MaxMEllon
- Created: 2018-04-08T13:14:48.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2018-04-12T12:11:34.000Z (about 8 years ago)
- Last Synced: 2025-04-07T14:43:10.985Z (about 1 year ago)
- Language: JavaScript
- Size: 15.6 KB
- Stars: 3
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# agreed を使ってみる
[agreed](https://github.com/recruit-tech/agreed)とは
---
Consumer Driven Contract をサポートするためのツールです.
指定された形式(json5, yml など)で API仕様書 を記述すると,それに従った mock server が立ち上がります.
また,[agreed-ui](https://github.com/recruit-tech/agreed-ui)(agreed同封) を利用することで,各種仕様をWebで確認できます
Consumer Driven Contractとは
---
**Consumer Driven Contract** の説明の前に,サービス開発におけるバックエンドとフロントエンドのロールについて整理します.
Consumer Driven Contractの文脈では,データや機能を提供する側を,**Provider** とし,
それを利用する側を Consumer とします.
一般的なRESTfulなAPIと連携するような開発スタイルの場合,バックエンド開発者が **Provider** となり,
フロントエンド開発者が **Consumer** となります.
従来は,Provider が APIのリクエストやレスポンスを設計し,それに従って
Consumerが開発するのが多かったように思えます.
このような開発スタイルでの問題として大きく挙がるのが以下の2点です.
- Provider の破壊的変更 `*1` に Consumer が気がつけない,対応できない
- Provider が API を開発するまで,Consumer が開発できない (mockサーバーなどで開発したとしても,Provider と Consumer が想定するAPIが異なる)
`*1` : 破壊的変更というのは,例えばカラム名が変わったりなくなったりするというもの
そこで,Consumerが主導になってAPIを設計仕様を考えようというものが, Consumer Driven Contract です.