2016-11-05 10 views
0

最近、Javaの代わりにNode.jsをAPIサーバー用に使用し始めました。 Node.jsが提供するすべての良い点を除けば、私が一番忘れるのは、API用の適切な応答オブジェクトを持つことです。node.jsとExpressで固定応答構造を持つ

JavaScriptは動的に型指定された言語であるため、応答を返しながらオブジェクトをオンザフライで作成することができます。これは、クラスを持つことができるJavaとは対照的です。クラスのインスタンスは、レスポンスで直列化されます。私はこのクラスをいつでも検索して、APIの応答を調べることができます。

Node.Js/Javascriptにそのようなデザインパターンがありますか?私たちのAPIは、そのようなテンプレートオブジェクトに厳密に準拠していることを望みます。

+0

スワッガーを調べると、応答\要求オブジェクトを文書化し、検証することができます。代わりに、Typescriptを使用してコンパイル時の型チェックを行うこともできます –

答えて

2

自分で作ることができます。

たとえば、ES6を使用している場合は、さまざまなエラーモジュールとレスポンスモジュールを用意し、それらのレスポンスを作成するクラスで独自の検証を実行できます。例えば

、あなたのHTTPインターフェースを構成しているが、あなたは(Expressで、例えば)たい方応答送り返すことができます次に

// sample-response.js 

class SampleResponse { 
    constructor(message) { 
    // validate `message` somehow 

    this.data = message 
    } 
} 

module.exports = { 
    SampleResponse 
} 

res.send(new SampleResponse(message)) 

同じJavaScriptなどの型の欠如によって必ずしも制限されているわけではありませんが、あなたは別のものを強制する必要があります。あなたはES6を使用していない場合

は、あなたがこのような何かを行うことができます。

module.exports = { 
    SampleResponse: function(message) { 
    // do some validation 

    return { data: message }; // or whatever you want 
    } 
}; 
1
  1. あなたは、コードのフローや活字体を使用することができます。

  2. 契約テストツールを使用できます。あなたのREST APIの契約によって異なります。

のために私のチョイスは、活字体とAbao + RAMLを使用することです。

関連する問題