views4GCPのストレージサービスについてまとめてみた。Exp:620サーバーサイドの開発をメインとしたJavaおじさんです。TweetShareHatena会社で新しいプロジェクトが立ち上がってWebAPIを作ることになったけど作り方がわからない。WebAPIつくってみたいけど大変そうだな。あと、作ったあとのドキュメントのメンテナンスとか面倒だし何かいい方法ないかな。こんな悩みに答えます。Java」を使って解説します。ドキュメントのメンテナンスとしてGCP上で確認できるデベロッパーポータルの解説をします。Platform(以下、GCP)を使っていきます。Javaを使いましょう開発の準備コードを書きましょうアプリケーションの確認ドキュメントは自動生成でメンテナンスするデベロッパーポータルで確認するまとめWebAPIの作り方それでは早速WebAPIをつくっていきましょう。APIに則って単純なリクエストを受け取りメッセージを返すようなAPIを目指します。ポイントをまとめるとこんな感じです。API開発にはフレームワークを使って開発していきましょう。フレームワークを使うことで技術的なリスクや煩わしさを減らすことができるので、実装に集中することができます。Javaで開発を進めていきます。Engineの標準環境であるPython、Javaのランタイムに対応するWebフレームワークです。HTTPリクエストとレスポンス通信の処理を行い、リクエストのURLを適切にコード内の関数にルーティングします。戻り値をJson形式に自動変換してレスポンスを送信します。小難しいこと書いてありますが、HTTP等の通信を特に気にしなくても良しなにアクセス処理してくれますよ。開発の準備をしていきます。今回はGCPを使った開発ですので事前にGCPプロジェクトの準備(https://www.apps-gcp.com/gcp-startup/)を行ってください。開発ツールは以下を使用します。3.0・Git・gcloudコマンドgcloudはCLIツールです。アプリケーションのデプロイなどの作業を行うために使います。こちら(https://cloud.google.com/sdk/docs/quickstarts?hl=ja)からインストールをできます。コードを書きましょうそれでは、実際にコードを書いていきます。3ステップで作っていきます。設定ファイルを変更します具体的にプログラムで書かなけれならいないところとしては、「リクエストを受け付けるところ」です。ステップ1Googleが公開している雛形アプリケーションを取得します。java-docs-samples/appengine-java8/endpoints-v2-skeletonステップ2雛形アプリケーションに用意されている下記のファイルを開きます。・src/main/java/com/example/skeleton/MyApi.javaクラスの中身は空っぽですね。ここにリクエストに応じたメソッドを追加していきます。下記のように編集して保存してください。GETアクセスをするとhelloメソッドの処理が行われるようになります。プログラムの解説です。アノテーションを付与することでリクエストとプログラムをマッピングすることができます。DELETEなど)を指定します。pathリクエストのURIを指定ます。中括弧で囲むことで変数として扱うことができます。アノテーションを付与することで取得することができます。パスのみならずクエリーパラメータも同様に取得できます。メソッド戻り値Javaオブジェクトを返却するだけで大丈夫です。フレームワークが自動でJSONへパースしてくれるので特に操作は必要ありません。ステップ3アプリケーションの設定ファイルを変更します。プロジェクト直下にあるpom.xmlを編集します。・pom.xmlYOUR_PROJECT_ID.appspot.comYOUR_PROJECT_IDを自身のGCPプロジェクトIDに変更して保存してください。アプリケーションの確認それでは作ったアプリケーションの動作を確認していきましょう。5つのステップで確認します。自分が書いたコードが想定した通り動作するかの検証します。ステップ1まずは、プロジェクトのビルドを行います。アプリケーションのRootフォルダで以下のコマンドを実行します。SUCCESSメッセージが表示されたら成功です。APIの構成ファイルを生成します。ドキュメントを生成します。SUCCESSメッセージが表示されれば成功です。生成されていることを確認してください。定義するための定められた業界標準の仕様です。構成ファイルをデプロイします。いう形式の名前が付けられます。とサービス名を示す次のような行が表示されます。[ca-sano-test.appspot.com]ステップ4いよいよGCP環境にアプリケーションをデプロイします。appengine:deployしばらく待ち、次のうようなメッセージが表示されれば成功です。[https://ca-sano-test.appspot.com]ローカル環境で動かす今回はGCP環境へデプロイしましたが、実際の開発時にはロカール環境で動作確認しながらの開発になるかと思います。以下のコマンドでローカル環境で起動できます。appengine:runステップ5最後のステップとしてアプリケーションにリクエストを投げてみしょう。YOUR_PROJECT_IDは自身のプロジェクトIDに変更してください。https://YOUR_PROJECT_ID.appspot.com/_ah/api/hello/Taro注)/_ah/api/がURIに含まれていますが、これはフレームワークがデフォルトで設定してるbasePathです。次のようなレスポンスが帰って来れば成功です。Taro"}ドキュメントは自動生成でメンテナンスするここまでコードを書いて動作を確認してきました。フロント開発者などに共有する必要があるかと思います。手書きのドキュメントを書いていたら、コードの変更のたびに開発者が手で編集が必要になります。コードがそのままドキュメントにるのが理想です。実はこれまでの工程で、自動ドキュメント生成の準備は整っています。ドキュメントを確認してみましょう。ポータル]を開きます。5〜10分かかるのでお茶でも飲みながら待ちましょう。URLをクリックして作成されたデベロッパーポータルを確認しましょう。途中、アクセス認証のステップがあると思います。デベロッパーポータルのトップページが確認できたらサービス名(YOUR-PROJECT-ID.appspot.com)をクリックして開いてみましょう。見ることができましたね。これで作ったWebAPIをチームで共有することができ、メンテナスフリーでドキュメント化も可能になります。APIを作る方法を解説してきました。煩わしいコードを書かずに簡単にWebAPIを作ることができたのではないでしょうか。Frameworkでは認証やアクセス制御もできます。デベロッパーポータルを使えばドキュメントがメンテナンスフリーになるのでチーム開発に是非役立ててください。