現在、既存の Rest サービスにアクセスするための C または C++ ライブラリを設計する準備をしていますが、よくわからない点は次のとおりです。
私が見たこのようなほとんどの API クライアント ライブラリは、ReST API に非常に近い呼び出しスタイルを提供するだけであり、使用するには ReST API ドキュメントを読む必要があります。それらは、IMO言語のネイティブスタイルで実際に書かれているわけではありません。それらは基本的に http ライブラリ、おそらく XML/JSON ライブラリをラップし、auth のようないくつかの特別なものを処理します:
スタイル 1:
paramList.add( "name", "Joe" )
response = makeARestCall( POST, "path/to/resource", paramList, miscAuthData );
if( result.code == 200 ) {
//success
xml = response.getXml();
somethingWeCareAbout = xpath.parse( xml, "response/something/we/care/about" );
print somethingWeCareAbout
} else {
print "Something went wrong"
}
API よりも言語の規則を使用する方が、私にははるかに自然に思えます。リソースにアクセスするのではなく、関数の呼び出しとして API を使用することを考えています。
スタイル 2:
try {
Api.setName( UserId, "Joe" );
print Api.getSomethingWeCareAbout();
} catch( ApiException e ) {
print e.getMessage();
}
私は後者のスタイルで API ライブラリを作成しましたが、それらはより多くの作業を必要としますが、特に複雑な ReST API の場合、アプリに使用して統合する方がはるかに自然だと思いますが、これについてはあまり経験がありません。
あるスタイルが他のスタイルより明らかに優れているか? 開発の容易さ以外に、ほとんどが最初のスタイルで書かれているように見える理由はありますか?
このライブラリは間違いなくマルチスレッド アプリや UI で使用されるため、スレッド化を念頭に置いて回答してください。