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

オブジェクト指向 プレゼンテーション層

本日も引き続き「現場で役立つシステム設計の原則」を読み進めてます。 本日はプレゼンテーション層、いわゆるMVCのViewにあたる部分。 Contents1 プレゼンテーション層の考え方1.1 要点1. …

no image

新アプリの本番環境デプロイについて

新しく作ったWEBアプリを本番配置しようとしたんですが、何度もやっているはずの処理がいざやろうとするといろいろと手間取ってしまい、1時間近くかかりました。 容量悪いなーと思いつつ、こういった行為はなる …

no image

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

前回に引き続き、大事だと思ったこと。一部単なるフレームワークの作り方的な内容になっているかも。 Contents1 テンプレート共通化2 バリデーション3 ログ出し4 異常系の処理5 新規プラグイン+ …

no image

API仕様書に関する注意事項

API仕様書を作っていて、基本的な点についてのまとめ コードと連動できれば理想(現実的には設定ファイルをJSONかYamlで作るぐらいが限界だと思う) 型のチェック、必須チェック、桁数チェック、日付の …

no image

プログラムからとExcelからのテストデータ作成

テストデータの作成ですが、プログラムから作成するケースとExcelからシコシコ作ってSQLをがんと入れる場合があります。Excelつってもマクロを使ったりするんでプログラムですし、実際にはPHPとEx …

アーカイブ