2017-07-20 3 views
2

私はElixirの新機能で一般的な関数型プログラミングですが、私が構築しているSDKでデータコントラクトの構造体モデルを構築するのは正しいことですか? Xero API用エリクシルで、私はAPIのために構築しているSDKのデータコントラクトをモデル化するために構造体を使用する必要がありますか?

SDKの要点は、Xero APIのエンドポイントとそのエンドポイントでの操作を公開し、OAuth1.0a認可を実行してからAPIにWebリクエストを送信することです。私のSDKは消費者に何を返すべきですか?

はI

  • は単なる生HTTPoison応答を返し、処理するために消費者に任せるべきでしょうか?
  • Poisonを使用して、返されたJSONペイロードをマップに逆シリアル化して返します。
  • それぞれのデータコントラクト用にstructを作成し、Poisonを使用してJSON文字列をこれらの構造体にデコードして少し力を入れますか?

エリクシール/関数型プログラミングでこれを行うにはもっと正しい方法がいくつかありますか?

APIはPUT/POST操作もサポートしているため、構造体を使用する場合は、これらの操作に構造体を指定してJSON文字列にエンコードすることができます。

APIのデータコントラクトはかなり複雑で、入れ子になっています。 You can see an example of one in the documentation

This is the SDK repo for anyone interested

+0

この質問と言語パラダイムとは何が関係しているのか、それは機能的、命令的、OO、あるいはまだ開発されていないことです。あなたの理解や消費者のニーズだけに依存して、何かを作り出すべきです。消費者のニーズが分からないときは、できるだけジェネリックのままにしておく方がよいでしょう。消費者がElixirベースであり、ストラクチャコードをストラクチャと共有する機会があるかどうかに関わらず、それらは即座にインスタンス化されます。これにより、私は、意見に基づいて質問を閉じるように投票します。 – mudasobwa

答えて

0

あなたはできるだけ早く、彼らはあなたに届くよう構造体への要求ペイロードを変換する必要があるかどうかを尋ねている場合、その答えはイエスです。構造体は下の裸のマップですが、それらはキーとして:atomsしか使用しません。これは、より高速にフェッチすることを意味します。

コードを後で保持する可能性のある仲間のプログラマーの方も読むのが簡単です。私も読むことをお勧めしますthis article.

関連する問題