エンジニアがアプリ担当とAPI担当で分かれているチームで、API担当のエンジニアがアプリ開発経験が無かったりすると、アプリ担当のエンジニアはどんなAPIがクライアントアプリにとって使いやすいのか、上手く伝えるのに苦労する事がありますよね?本記事はそんな場面でAPI担当のエンジニアに読んでもらう事を想定しています。 APIと型 アプリ側はRESTクライアントにRetrofitやRestkit等、既に広く使われているライブラリを使用する事が多いです。それらのライブラリは、オブジェクト・JSON間の変換機能があり、アプリ側ではJSON等シリアライズされるデータ形式を意識せずに、処理系上のオブジェクトをそのまま扱えます。即ちAPI経由でやり取りされるデータは全て型を持つのです。 例えばAPI側のコードで以下の様に定義されたクラスが
![クライアントアプリの為のREST API設計 - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/28622edc2ff64c55081ace042d15e4d734f7dd62/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Fogp-background-1150d8b18a7c15795b701a55ae908f94.png%3Fixlib%3Drb-1.2.2%26w%3D1200%26mark%3Dhttps%253A%252F%252Fqiita-user-contents.imgix.net%252F~text%253Fixlib%253Drb-1.2.2%2526w%253D840%2526h%253D380%2526txt%253D%2525E3%252582%2525AF%2525E3%252583%2525A9%2525E3%252582%2525A4%2525E3%252582%2525A2%2525E3%252583%2525B3%2525E3%252583%252588%2525E3%252582%2525A2%2525E3%252583%252597%2525E3%252583%2525AA%2525E3%252581%2525AE%2525E7%252582%2525BA%2525E3%252581%2525AEREST%252520API%2525E8%2525A8%2525AD%2525E8%2525A8%252588%2526txt-color%253D%252523333%2526txt-font%253DAvenir-Black%2526txt-size%253D54%2526txt-clip%253Dellipsis%2526txt-align%253Dcenter%25252Cmiddle%2526s%253D5270ff35a96bc130e646566a1a63e961%26mark-align%3Dcenter%252Cmiddle%26blend%3Dhttps%253A%252F%252Fqiita-user-contents.imgix.net%252F~text%253Fixlib%253Drb-1.2.2%2526w%253D840%2526h%253D500%2526txt%253D%252540hnakagawa%2526txt-color%253D%252523333%2526txt-font%253DAvenir-Black%2526txt-size%253D45%2526txt-align%253Dright%25252Cbottom%2526s%253D39e4d7951e2c86101fbaa46d92bd09b0%26blend-align%3Dcenter%252Cmiddle%26blend-mode%3Dnormal%26s%3Da5b276e4678451b5e1acee912444f3df)