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

event-listenerについて

前回Observeパターンに触れましたが、少し似たパターンとしてevent-listenerを使ったパターンが存在します。 Model(Eloquentのフック)というのが大まかな共通項ですかね。 そ …

no image

Facadeパターンについて(Laravelを題材に)

LaravelのFacadeについて自作する機会があったので、メモ。 デザインパターンの一種かと思います。 Contents1 サンプル2 使い所3 メリット4 デメリット5 参考リンク サンプル h …

no image

抽象性と可読性のトレードオフに関して

私自身プログラムを書く場合、とにかくコードを書く量を制限したいという思いが強く、多少でも共通化できる箇所がある場合はなるべく共通化するようにしておりましたが、時と場合によっては過剰に共通化したことによ …

no image

バッチスクリプトで気をつけたい点

実務でバッチ処理を作る際に気をつけるべきと思ったこと。 基本的にエラーをいかに捉えていかにログに吐くかを最初に考える。まずはエラーありき。失敗するもの、想定した値がこない、あるいは値がないを前提として …

アーカイブ