2017-03-27 8 views
0

私のアプリケーションはJavaで処理ロジックとノードの数を持つ中央部分が1つあり、中央部分からデータを取り出す場合です。特定のコンシューマ構造に応じたREST APIの開発用

現在、中央部とノードの両方がjavaであり、中央部がノードからデータをフェッチできるようにノードによって実装する必要があるインタフェース(データフェッチ方法を持つ)があります。

ここでは、任意の言語で開発でき、HTTP経由でデータをフェッチできるように、ノード開発を外部化したいと考えています。私は同じのためのREST APIを使用することを考えています。私のノードは、残りのAPIとして公開し、中央の部分はREST API呼び出しを使用してデータをフェッチします。

私の質問はここにあります - REST APIを開発する際に強制することができる、私の中心的な部分に必要なREST APIの構造を定義することは可能ですか? たとえば、Javaクラスのノードに任意のインターフェイスを実装するとき、指定されたパラメータで一連のメソッドを実装する必要があります。 REST API開発に同様の方法で強制的に残りのAPIとパラメータの特定の構造を持たせることができるメカニズムはありますか?または、エクスポートしてRESTデベロッパーに渡してREST APIを検証できる構造にすることもできます。

+0

1年前に同様の問題が発生しました。データは各ノードから収集されています。私たちはapache倹約と飼育係を使用してそれを解決しました。そこで、休憩の代わりにRPCを使用しました –

答えて

0

私が知る限り、REST-APIをコード化するために他の人にインターフェイスのようにしてもらうために、言語に依存しない方法はありません。他の人が従うことができ、テストケースを導き出すことができる素晴らしい仕様が必要です。したがって、残りのAPIのURLをテストしてデータを取得し、期待どおりに検証し、結果とともにログファイルを作成する小さなツールを作成します。あなたはそれをテストするために、この小さなツールを他の開発者に与えることができます。

それほど多くはありませんが、おそらくこのアイデアが役に立ちます。

0

JSON構造(POSTメソッドの本体)を使用するRESTサービスを構築できます。 Javaクライアントを構築するには、このJSONにシリアライズできるPOJOモデルを使用します。例えば

:RequestBeanが期待されるJSONとしてシリアライズされる属性は、クラス、およびあなたはREST開発者に提供しなければならないものです

HttpEntity<RequestBean> request = new HttpEntity<RequestBean>(requestBean, headers); 
RestTemplate restTemplate = new RestTemplate(clientHttpRequestFactory());   
ResponseBean response = restTemplate.postForObject(endpoint, request, ResponseBean.class); 

0

http://swagger.io/エコシステムでは、多くのツールが含まれており、クライアントクラスを生成することに限定されていません。

関連する問題