skillup

技術ブログ

アーキテクト設計全般 ドキュメント作成

APIに関して

投稿日:2020年2月27日 更新日:

RESTAPIのルーティングで気をつけることなんぞを。

直近のプロジェクトではRESTAPIを作ることが多かったんですが気をつけることなんぞを。

仕様書はソースから

web系のペースの早い現場とかだと、ドキュメントづくりが結構大変なんですよね。

ドキュメント作成について

上記のような問題点があるのですが、APIの場合は比較的ソースからドキュメントが起こしやすいのではないかと思います。

Laravelで作ったAPIのドキュメントを超簡単に生成する方法(Laravel API Documentation Generator)

私の場合、リクエストとレスポンスを伝えるのにテストコードを使っていました。

テストコードが仕様書になりますので、ソースの修正と同時に仕様書が出来上がります。(実際はそんなにうまく行きませんが手でドキュメントを作るよりかは差分が小さくなります。)

ツール

開発効率を上げるためにですが、APIを投げるツールについてよく調べておくこと

それほど調べたわけじゃないですが、やはりPostmanが使いやすかったです。

他curlコマンドを色々と応用したり、Guzzleなんかもツール化してみると使いやすいかと思います。

LaravelでのAPI実装

form以外でのPOST送信(というかHTTP通信全般)

curl コマンド 使い方メモ

命名

今回のメインはここです。

命名ルールが場当たり的になってしまい、統一性がなくなることがありましたので、ある程度一般的なルールを学習したいと思います。

基本的な原則

  • 言語の拡張子などを入れない
  • http://exmample.com/api/v1/ などバージョンを入れる
  • 名詞(できれば複数形)のみで構成するget,createなどを入れない(CRUDの分だけURLが増える)
  • URLのみで情報がわかるようにする

実例(頻出のタイプに関して)

一覧系のメソッド(GET)+新規追加

http://example.com/api/v1/articles

個別参照(GET) + 個別編集(PUT)+削除(DELETE)

http://example.com/api/v1/articles/ID番号

などでしょうか。Laravelだと一気に作ることができます。

複雑なものは、

http://example.com/api/v1/customers/100/orders/200/comments/2

などのパターンが多いようです。(リンク参照)

上記だと、顧客ID100のお客さんの注文番号200の商品の2番目のコメントみたいな感じですかね。

参考URL

RESTful APIのURI設計(エンドポイント設計)

REST APIの始め方 (名前の付け方)

REST APIとは? – API設計のポイント!

-アーキテクト設計全般, ドキュメント作成
-,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

ドキュメント作成(要件定義〜設計)のポイントについて

4月から新しいプロジェクトが始まり仕事がドキュメント作成(要件確認書、基本設計、詳細設計)などをしております。この仕事自体が自分にとってあまりなじみのないものだったので、そこで思ったことなどを。 Co …

no image

オブジェクト指向 アプリケーション間連携(主にWebAPI)

本日も引き続き「現場で役立つシステム設計の原則」を読み進めてます。 本日はプレゼンテーション層、いわゆるMVCのViewにあたる部分。 Contents1 アプリケーション間連携(主にWEBAPIに関 …

no image

オブジェクト指向 ドメインモデル

本日も引き続き「現場で役立つシステム設計の原則」を読み進めてます。 本日は主にドメインモデルの考え方について。 Contents1 ドメインモデルの考え方1.1 要点1.2 感想 ドメインモデルの考え …

no image

ファジープロジェクト対策 その1

5月ぐらいから着手していたプロジェクト(顧客管理ソフト)が終焉を迎え、検証段階に入ったので、記して置きたいことなど。 数ヶ月程度ですが、自分が携わったプロジェクトの中では過去最大クラスのものでした。 …

no image

型の意識について(ValueObjectの活用など)

現在の現場でコードレビューをしてもらう機会が増え、自分が弱かった型の意識について。 現在ではPHPでも型を記述してコーディングすることが一般的なため、静的言語と同じように型を意識することが増えてきたか …

アーカイブ