BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース PayPalのAPIスタイルガイドとパターン

PayPalのAPIスタイルガイドとパターン

ブックマーク

原文(投稿日:2017/09/22)へのリンク

PayPalはRESTful APIを通じて相互に接続できるPaaSを開発した。これらのAPIを開発、利用するためのガイドラインデザインパターンを作り上げ、他の開発者が自分たちのプロジェクトにインスピレーションを得られるように公開した。

PayPalは何年も掛けてプラットフォームに合うAPIを開発、進展させ、APIデザインガイドラインを考え出した。ガイドは次のような基礎原理に従っている:

  • 疎結合 - サービスとコンシューマは相互に疎結合するべきである。
  • カプセル化 - ドメインサービスはデータと機能にアクセスできる。他のサービスコントラクトのみによって所有するものではない。
  • 信頼性 - サービスコントラクトは安定しているべきである。
  • 再利用性 - サービスは、複数のコンテキストに渡り、複数のコンシューマによって再利用できるように開発されるべきである。
  • コントラクトベース - 機能とデータは標準化されたサービスコントラクトによってのみアクセスできるようにするべきである。
  • 一貫性 - サービスは共通のルールセット、インタラクションスタイル、用語、共有型に従うべきである。
  • 使いやすさ - サービスは容易に使えて、コンシューマ(アプリケーション)で組み立てられるべきである。
  • 外部化= サービスは提供された機能が用意に外部化できるようにデザインされるべきである。

ビジネス能力はリソースとして明らかにされる= 名前を持てる全ての情報である。リソースは1つのサービスによって提供されるべきであり、重複は避けるべきである。CRUD操作はリソース上に限られ、次のHTTP動詞によって実装されるべきである。

€・
  • GET - リソースを読み出す
  • POST - リソースを作り出す、またはリソース上で複雑な操作を実行する
  • PUT - リソースを更新する
  • DELETE・ リソースを削除する
  • e
  • PATCH - リソースに部分的な更新を実行する

HTTPリクエストとレスポンスは、JSONスキーマに基づいたJSONデータインターチェンジフォーマットを使ってデータを送信する。JSONプリミティブ= string, number, enumeration, array, null - と共通型の両方がサポートされている。後者にはaddress, money, date, time, country, phone numberなどがある。

APIガイドはRESTメソッドに則ったハイパーリンクの使い方を示すコードサンプル付きのHATEOASユースケースを含んでいる。また、HTTPメソッドとステータスコードのマッピング、URIの命名規則、クエリパラメータ、リソース、エラーハンドリング、バージョニング、デプリケーションなど、HTTPヘッダ(スタンダードとカスタム)とステータスコードを利用する上でのガイドラインもある。PayPalはまた、APIを利用するためのパターンとコードサンプルが付いたAPIデザインパターンとユースケースをドキュメントとして公開している。

 
 

Rate this Article

Adoption Stage
Style
 
 

この記事に星をつける

おすすめ度
スタイル

BT