当方、はじめてのQiita投稿になりますので、どうかお手柔らかにお願いいたします。そもそもAPIってなあに?APIは、アプリケーションプログラミングインターフェースの略です。「WebAPIについての説明」という記事の「WebAPIの一旦のまとめ」に、簡潔でとてもいい説明がありました。サーバーで用意している関数(機能)をhttpで通信して利用する事。利用するには決め事を守ってリクエストを出す。決まり事とはURLとか渡すデータの名前とかデータの形式とか。レスポンスは大体何かしらのデータ。データの形式は最近はJSON。一昔前はXMLが主流だった。ajax形式で利用される事が多い上記の記事を最初から全部読むのは大変だと思うので、概念から知りたい、という場合は以下の記事が参考になります。APIって結局何なの?初心者向けに徹底解説します!もっとコンピューターサイエンス的な観点で知りたい、という場合は、最初の記事をつまみ食いしながら読むと良さそうです。いうことで、APIはどうやらJSON形式のデータだということが分かりました。JSONについて知りたい方は、以下の記事を読んでみて下さい。非エンジニアに贈る「具体例でさらっと学ぶJSON」JSON形式のデータは、こんな感じの見た目をしています。}}このようなデータが返ってくるようなAPIを、これからRailsで作ってみたいと思います。Railsプロジェクトの作成まずはAPIモードでRailsプロジェクトを作成しましょう。APIモードでRailsプロジェクトを作成すると、APIには不要なView・UI関連のライブラリがインストールされません(Rails4まではrails-apiというgemを入れる必要がありました)。newするときに、--apiオプションを付けます。今回はscaffoldで作ってしまいましょう。usersできたModelは以下のようになります。ApplicationRecordendまた、Controllerは以下です。json:がいっぱいありますね。これでjson形式のAPIが出来ています。jsonを確認してみよう実際にjsonを見てみましょう。先ほどUserモデルを作成したため、一度マイグレーションを行ってから、ローカルのRailsサーバーを立ち上げます。s以下のURLにアクセスすると、http://localhost:3000/users真っ白な画面に[]と表示されています。この画面はUser#indexのアクションで、User一覧のjsonが出力されるのですが、まだUserのデータがひとつも入っていないため、空の配列が表示されています。正常に表示されているということになります。これだけだとさみしいので、データが入った状態のjsonを確認するために、nameカラムを追加します。マイグレーションファイルを作成して、その内容を更新し、再度マイグレーションを行います。これでnameカラムが追加されました。これからUserのデータを入れるためにpostを行うので、Controllerのストロングパラメータを更新します。以上の準備ができたところで、以下のコマンドで新しいUserを作るAPIを叩いてみましょう。'user[name]=meru'{"id":1,"created_at":"2017-12-16T04:30:04.202Z","updated_at":"2017-12-16T04:30:04.202Z","name":"meru"}このようなレスポンスが返ってくれば、成功です。それでは、先ほどのURLに再度アクセスしてみましょう。http://localhost:3000/users以下のように表示されていれば、成功です。[{"id":1,"created_at":"2017-12-16T04:30:04.202Z","updated_at":"2017-12-16T04:30:04.202Z","name":"meru"}]テストの作成APIのテストは、エラーハンドリング(各種エラーをどのように処理するか)の検証で重要になります。APIではない通常のRailsアプリケーションでもテストは欠かせませんが、APIを目視や動作確認で検証するなんてますます面倒ですので、APIを作る際には必ずテストを書くようにしましょう。今回はrspecで作成したいので、これまで作成してきたRailsプロジェクトに、rspecをインストールします。方法については、以下の記事を参考にして下さい。Railsでrspecを使うように設定するAPIのテストは、spec/requestsディレクトリ以下に作成します。Userこれで、テストファイルが自動生成されます。今回はUser#indexだけテストを行います。テストの内容を更新し、テストを実行してみましょう。failuresこれで、APIのテストが出来ました。忘れずにAPIからレスポンスを受けるには、渡すデータの名前やデータの形式などの決め事を守ってリクエストを出すこと、という説明が前半でありました。ドキュメントは、その決め事を何らかの形で見える化するものです。リクエストを出す側の気持ちを考えると、APIを作るなら必ず残しておきたいですね。Qiita:DeveloperesaのAPIドキュメントはこんな感じです。rdocで生成して、マークダウンで書いていく方法もありますが、autodocというツールを使えば、rspecのテストから自動生成できます。先ほど作成したテストをもとに、APIドキュメントを生成してみましょう。installをします。その後は、以下の記事を参考にしながら進めましょう。すごいこれで、APIドキュメントが作成できました。まとめ後半駆け足になってしまいましたが、「RailsでAPIっていうものを作ってみたいけどやり方がわからない...」という方向けに、APIの作成からテスト、ドキュメントの作成方法までご紹介しました。APIの書き方やドキュメントの作成方法には、ほかにもいくつか種類がありますので、興味のある方は調べてみて下さい。