REST-API

1/5ページ

AWS EMRにspark-jobserverを構築してREST経由でJob実行させる

Sparkを利用して、ジョブをパシパシ叩きたかったのですが、どうやってジョブ実行をしようかな、と悩むことになりました。 クラウド依存になりたくなかったので、できればKinesisストリームは使いたくないな。。と思いつつも下記のように調べてみました。 利用可否 Streamingか単発ジョブか アドホックな引数設定の可否 懸念 KinesisとSpark Streaming 可 Streaming やや難しい。 GCPとかMS使いたくなっ […]

RESTful APIのエラー設計

RESTful APIのレスポンスデータ設計の最後でも述べたが、APIでエラーが発生した時のレスポンスデータも検討する必要がある。 エラー発生時のレスポンスデータの考え方 APIのレスポンスデータはほとんどの場合プログラムで処理されるため、エラーが発生した時も、 どんなエラーが発生したのか そのエラーはなぜ発生したのか そのエラーはどうすれば解決できるのか をプログラムが分かるようにしておく仕組みが必要。 エラー発生時のレスポンスデータ […]

RESTful APIのレスポンスデータ設計

APIを利用する側にレスポンスとしてどのようなデータを返却するかを検討する。 レスポンスデータを設計する上での考え方 APIのレスポンスデータはほとんどの場合プログラムで処理される。また、HTTP経由でAPIが呼ばれるため、HTTPのオーバーヘッドも発生する。そのため、 できる限りプログラムで処理しやすいレスポンスデータ APIへのアクセス回数は極力最小限に を念頭に検討する必要がある。 レスポンスデータのフォーマットを検討する JSO […]

RESTful APIの設計でやること

前提 Web APIとは何なのか リソース指向アーキテクチャ(ROA)とは何なのか RESTful APIとは何なのか RESTful API設計でやること 体系的にまとめてみた。 リンクになっているところは以前Qiitaに投稿した記事。詳細はリンク先を参照してほしい。 リソース設計 インターフェース設計 URI設計 レスポンス設計 HTTPステータスコード設計 データモデル設計 例外設計 ログ設計 詳細設計 ログ設計、詳細設計に関して […]

Apache CXF (JAX-RS) で abstract class を活用した REST Client を作る

JAX-RS を使うと REST クライアントが簡単に書けることを知ったが、 一つ問題があった。 具体的には、以下のようなことがやりたかった。 @Path("/json_sample") public abstract class SampleRESTServer { /** * このメソッドではサーバーにデータを取得して POJO で返す */ @GET @Path("/hello.js") public abstract Messa […]

REST Assured を使ったREST API テスト

はじめに REST APIの自動テストを行うためのツールを探していたところ、クラスメソッドさんの記事を見つけたのですが、若干バージョンが古かったので 2017/01/23 時点での最新バージョンで改めて試してみました。 REST Assuredとは 今回使用するライブラリはREST Assuredというもので、JavaでDSL風にREST APIのテストを記述することができます。 ライブラリを追加することでJSON/XMLのテストを簡単 […]

REST Assured を使ったREST API テスト その2

はじめに 前回の「REST Assured を使ったREST API テスト」 で、REST Assuredを使ったREST APIのテストの書き方についての入門を書きました。前回はさわりだけでしたが、今回はより実践的な内容を書いていきます。 使い方 Responseについて JSONPathを利用してResponseを検証する JSONPathでの解析方法を使って記述します。 Requestの投げ方は通常どおりgiven().get( […]

RESTful APIのURI設計(エンドポイント設計)

RESTful APIのリソース設計で述べた通り、何をリソースとするかを決めたらそのリソースを識別するURIを検討する必要がある。 エンドポイントとは何か エンドポイントとはAPIにアクセスするためのURIのこと。例えば、QiitaのAPIで自分の情報を取得する時のエンドポイントは以下となる。 http://qiita.com/api/v2/users/nagaokakenichi 似たような言葉に「エントリポイント」というものがある。 […]

1 5