初心者Web開発者の Web API 製作メモ&ノウハウ集

wagahaihanekodearu
ここ最近 PHP 使って iOS や Android 向けにちょっとした API 作ることが多いんだけど、どんな風に設計するのがよいのかいっつも迷います(^_^;) メンテし易く効率良いAPI作りたいんで、色々と探ってみるかなぁ~、、、

■.索引

○そもそもWebAPIって?
○WEB APIのURL設計
○レスポンスはXMLか?JSONか?
○API設計に関する10のワーストプラクティス
○APIのセルフテストしよーぜ
○WebAPI 設計メモ
○API仕様サンプル
○読み物リンク集
○参考ドキュメント
○PHP関連まとめ
・PHPの備忘録 ~ 意外と簡単Ajax用にAPIを作っちゃお!
・PHPの備忘録 ~ オブジェクト指向のためのクラス定義ノウハウ集
・PHPの備忘録 ~ 初心者トラブルやノウハウ集 ~

■.そもそもWebAPIって?

Web APIとは、ひとことで言えば、インターネット(Web)を経由して、何らかの処理を行うための、手段や決めごと(API)のことです。APIとは、Application Program Interfaceの略で、直訳すると、あるプログラムを、他のアプリケーションから利用するためのインターフェース、という意味になります。
Web APIの基本とAndroidアプリ開発の準備(1/3):CodeZine

Web APIを利用したプログラムの実行

■.WEB APIのURL設計

有名サービスのAPIのURL設計が一覧でまとめられてます\(^o^)/

そのURLがAPIであることを表す方法は大きく分けて2種類あります。サブドメインに置き http://api.example.com/ とするか、パスに置き http://example.com/api/ とするか、です。
WEB APIのURL設計のトレンドはこれだ!WEB APIのURL設計まとめ | 三度の飯とエレクトロン

Facebook や Twitter は種類によってサブドメインがわかれているが, ひとつのまとまっている方がよい
Web API 設計のベストプラクティス集 “Web API Design – Crafting Interfaces that Developers Love” – フリーフォーム フリークアウト

複数に訳ないと困るような規模の開発はしてないやww
てかっ、自分が使う側だとしても1つにまとまってた方が嬉しいかな。

■.レスポンスはXMLか?JSONか?

公開されているWeb APIのなかには、XML形式とJSON形式の両方に対応しているものもあれば、どちらか一方だけしか対応していないものもあります。

JavaScriptでのあつかいやすさ、形式のシンプルさでは、JSON形式のほうが優れているため、今後はXML形式よりJSON形式のものが増えそうです。
Web APIの基本とAndroidアプリ開発の準備(2/3):CodeZine

両方サポート仕様とすると地味に開発コストが、、、
小規模のWebAPIしか作ったことないけど、JSONで十分。
てかJSONが使いやすい(^u^)

それに、クライアント側開発者からも、どっちかといえばJSONでお願いされますね。

■.API設計に関する10のワーストプラクティス

【API設計に関する10のワーストプラクティス】
1.貧弱なエラーハンドリング
2.HTTPのルールを無視したREST API
3.裏に潜んだ生のデータモデルの露出
4.セキュリティの複雑さ
5.ドキュメント化されていない予期せぬリリース
6.貧弱なデベロッパエクスペリエンス
7.MVC(Model-View-Controller)フレームワークが良いAPIにしてくれるという思い込み
8.開発すれば使ってもらえるとみなすこと
9.不十分なサポート
10.貧弱なドキュメント
API設計に関する10のワーストプラクティス:海外テック情報局|gihyo.jp … 技術評論社

■.APIのセルフテストしよーぜ

「APIを提供するときは、API自身のテストだけではなく、必ずそのAPIを利用するコードのユニットテストも書く」

もし、API を実際に使わなければ、その設計が良いのか悪いのかを判断することは出来ないですし、結果として誰も使わないような API になってしまうかもしれません。
Typetalk のアーキテクチャ – API を中心にすえたサービス設計 | Nulab 日本語ブログ

これはあるかも。

内部ロジックをデバッグ実行してテストするのと、
実際にクライアント作ってテストするのじゃ感じ方が大分違うよ(^_^;)

■.WebAPI 設計メモ

■.API仕様サンプル

独自のWebAPIを公開されているサイトっぽいです。
こういうの作ってみたいですね(^u^)

WebApiの仕様公開するときの参考にしたいです。

レスポンスデータ検討時に参考にしたいかも。

■.読み物リンク集

■.参考ドキュメント

■.PHP関連まとめ

https://matome.naver.jp/odai/2139653671847871801
2014年12月02日