私は中級レベルのC++プログラミング経験を持つ大学生です。 できるだけ早く、アプリケーション用にシンプルなRESTベースのAPIを実装したいと思います。
Casablanca および libWebSockets を見てきましたが、それぞれのサイトに投稿された例は頭に少し残っています。 C++でRESTFUL APIサーバーを作成するための、より初心者向けのチュートリアルがあるライブラリはありますか?
注:この質問はC#で何度か尋ねられていることを知っていますが、答えは1年または2年以上前のものであり、ほとんどが初心者向けではありません。新しい投稿が新鮮な答えをもたらすことを願っています!
ちょっと私もAPIゲーム全体を始めたばかりです。 Visual StudioでASP.NET Web APIを展開することは、開始するのに最適な方法であることがわかりました。 VSが提供するテンプレート(2013年を使用しています)を使用すると、独自のコントローラーを簡単に作成できます。
HTTPメソッドに関するチュートリアルをいくつか参照すると、実際にコントローラーをニーズに合わせて作成することができます。彼らはあなたが実行しようとしていると確信しているCRUD操作にうまくマップします。
また、各コントローラーメソッドを呼び出して、シリアル化されたJSON/XMLオブジェクトの受け渡しを可能にするC++のライブラリを見つけることができるはずです。これがお役に立てば幸いです! :)
Restbed は、 [〜#〜] asio [〜#〜] およびC++ 11を介して非同期クライアント/サーバー機能を提供します。多くの examples があり、ヘッダーファイルの読み取りを好まない人のために、まもなくドキュメントが利用可能になります。
#include <memory>
#include <cstdlib>
#include <restbed>
using namespace std;
using namespace restbed;
void post_method_handler( const shared_ptr< Session > session )
{
const auto request = session->get_request( );
int content_length = 0;
request->get_header( "Content-Length", content_length );
session->fetch( content_length, [ ]( const shared_ptr< Session > session, const Bytes & body )
{
fprintf( stdout, "%.*s\n", ( int ) body.size( ), body.data( ) );
session->close( OK, "Hello, World!", { { "Content-Length", "13" } } );
} );
}
int main( const int, const char** )
{
auto resource = make_shared< Resource >( );
resource->set_path( "/resource" );
resource->set_method_handler( "POST", post_method_handler );
auto settings = make_shared< Settings >( );
settings->set_port( 1984 );
settings->set_default_header( "Connection", "close" );
Service service;
service.publish( resource );
service.start( settings );
return EXIT_SUCCESS;
}
次の主要な機能により、アプリケーション層に依存性を注入できます。
auto settings = make_shared< Settings >( );
Service service;
service.add_application_layer( http_10_instance );
service.add_application_layer( http_11_instance );
service.add_application_layer( http2_instance );
service.add_application_layer( spdy_instance );
service.start( settings );
ngrest はシンプルなREST epoll、コード生成、コマンドラインツール、拡張機能、およびその他のシュガーを備えたフレームワークです。
使いやすく、初心者に適しています。 C++ 11で記述され、ビルドにCMakeを使用します。
http://pistache.io/ は見た目が良く、モダンに見えます。ハローワールドの長さはわずか9行です。