RESTBEDは、HTTPを介したシームレスで安全な通信を必要とするアプリケーションを構築するための包括的な一貫したプログラミングモデルであり、モバイル、タブレット、デスクトップ、組み込み生産環境をターゲットにするために設計されたさまざまなビジネスプロセスをモデル化する機能を備えています。
Nginxを会社自身の製品ラインに埋め込むことに似ています。 -Solutions Architect、Bellrock Technology
| 特徴 | 説明 |
|---|---|
| WebSockets | 単一のTCP接続にわたるフルダプレックス通信チャネル。 |
| サーバーセントイベント | サーバーセントイベントにより、テキストベースのイベントデータ、EEG、リアルタイム通知、またはサーバーで生成された更新の効率的なサーバーからクライアントのストリーミングが可能になります。 |
| 彗星 | サーバーからクライアントにデータをプッシュするための長年のHTTP要求を許可する長いポーリングモデル。 |
| SSL/TLS | ワイヤー通信を保護して、オンラインでプライベートデータを送信できます。 |
| セッション管理 | カスタムHTTPセッションの永続性と管理ロジックを作成します。 |
| HTTPパイプライン | 対応する応答を待たずに、単一のTCP接続で複数のHTTP要求を送信できる手法。 |
| パスパラメーター | リソースキー、リビジョンなどのカスタムパスパラメーターでURISに注釈を付けます... |
| クエリパラメーター | 自動クエリパラメーター解析。 |
| ヘッダーフィルター | ヘッダーによる着信HTTP要求をフィルターします。 |
| ロギング | ログエントリの作成方法と場所をカスタマイズします。 |
| マルチパスリソース | 読みやすさを改善するための複数のパスをリソースに提供します。 |
| カスタマイズ可能な方法 | 独自のカスタムHTTPメソッドを追加します。 |
| 圧縮 | あらゆる形態の圧縮gzip、deflateなどに対処するための適応性... |
| エンコーディング | あらゆる形態のUTF-32、ASCIIなどに対処するための適応性... |
| ルールエンジン | 読み取り可能なコード単位で着信要求を処理することにより、複雑さを減らします。 |
| http/https | オプションのSSLピア証明書の確認を備えたクライアント機能を組み込んでいます。非推奨 |
| IPv4/IPv6 | インターネットプロトコルバージョン4/6ネットワークサポート。 |
| 建築 | C10K問題に対処できる非同期シングルまたはマルチスレッドアーキテクチャ。 |
| コンバーター | プライマリデータタイプの組み込みパス、クエリ、およびヘッダー変換。 |
| 認証 | 個別のサービスおよび/またはリソースレベル認証。 |
| エラー処理 | 個別のサービスおよび/またはリソースレベルのエラー処理。 |
| アドレスバインディング | HTTPおよび/またはHTTPSサービスをバインドして、IPアドレスを分離します。 |
| 信号処理 | OS生成プロセス信号をキャプチャします。 |
| ドキュメント | アーキテクチャとAPIをカバーする高品質のドキュメント。 |
| コンプライアンス | HTTP 1.0/1.1+コンプライアンスに対処する柔軟性。 |
| 成熟 | 2013年以降、安全で安定し、広範囲にテストされています。 |
| コミュニティ | アクティブで活気に満ちたエネルギッシュなオープンソースコミュニティ。 |
| サポート | Corvusoftからコマーシャルサポートを利用できます。 |
# 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 = request-> get_header ( " Content-Length " , 0 );
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;
}詳細な例は、こちらをご覧ください。怒りで使用されているRESTBEDを見るには、CorvusoftのRESTQプロジェクトにアクセスしてください。
©2013-2020 Corvusoft Limited、イギリス。無断転載を禁じます。
RESTBEDフレームワークはデュアルライセンスです。詳細については、ライセンスを参照してください。
オーダーメイドのソフトウェア開発、テスト、設計相談、トレーニング、メンタリング、コードレビューなど、サポートおよびライセンスオプションについては、[email protected]にお問い合わせください。
問題トラッカーを介して、すべての拡張機能、提案、および欠陥を提出してください。または、#restbedがタグ付けされたStackoverflowについて質問します。
git clone --recursive https://github.com/corvusoft/restbed.git
mkdir restbed/build
cd restbed/build
cmake [-DBUILD_SSL = NO] [-DBUILD_TESTS = NO] ..
make install
make testこれで、Distributionサブフォルダーに必要なすべてのコンポーネントがインストールされています。
| オプション | 説明 | デフォルト |
|---|---|---|
| build_ssl | SSL/TLSサポートを有効にします。 | 有効になっています |
| build_ipc | UNIXドメインソケットを有効にします。 | 無効 |
| build_tests | プロジェクトテストスイートを構築します。 | 有効になっています |
| build_devel_package | cmake_install_prefixにヘッダーをインストールします。 | 有効になっています |
| build_shared_library | RESTBEDの共有ビルドを作成します。 | 有効になっています |
| build_static_library | RESTBEDの静的ビルドを生成します。 | 有効になっています |
前提条件:Visual Studio 2022、CMake、Git、Perl。
X64 Native Toolsコマンドプロンプトを使用すると、必要に応じてOpenSSLの構築を開始します。
git clone --recursive https://github.com/corvusoft/restbed.git
cd restbeddependencyopenssl
perl Configure [no-]shared
nmake
nmake testデフォルトのOpenSSLビルド(共有)を使用するように選択した場合、環境にインストールパスを含める必要があります。
set PATH = restbeddependencyopenssl; %PATH%Static OpenSSLビルド(非共有)を使用するように選択した場合、アプリケーションコードをリンクするときに追加の依存関係を含める必要があります。 Futherの詳細については、OpenSSLプロジェクトを参照してください。
target_link_libraries( my_microservice restbed-static.lib ws2_32.lib advapi32.lib crypt32.lib gdi32.lib user32.lib )次に、次のRESTBEDビルド手順を進めます。
mkdir restbedbuild
cd restbedbuild
cmake -G " Visual Studio 17 2022 " [-DBUILD_SSL=NO] [-DBUILD_TESTS=NO] ..
cmake --build . --target ALL_BUILD --config Release
ctestMicrosoft Visual Studio 14 2015の指示、および詳細については、機能#17を参照してください。
VCPKG依存関係マネージャーを使用して、RESTBEDをダウンロードしてインストールできます。
git clone https://github.com/Microsoft/vcpkg.git
cd vcpkg
./bootstrap-vcpkg.sh
./vcpkg integrate install
./vcpkg install restbedVCPKGのレストポートは、Microsoftチームメンバーとコミュニティの貢献者によって最新の状態に保たれています。バージョンが古くなっている場合は、VCPKGリポジトリで問題を作成するか、リクエストをプルしてください。
このコードベースは、可能な限り自己文書化することを目的としています。開発者を支援するために、多くの例とテストスイートを提供しました。
ここで、最新のデザインとAPIのドキュメントを見つけることができます。
| リソース | 要件 |
|---|---|
| コンパイラ | C ++ 14準拠またはそれ以上 |
| OS | BSD、Linux、Mac OSX、Windows、Raspbian |
| マイルストーン | 特徴 | 状態 |
|---|---|---|
| 0.0 | 非同期HTTPサービス | 完了 |
| 1.0 | HTTP 1.0コンプライアンス | 完了 |
| 2.0 | HTTP 1.1コンプライアンス | 完了 |
| 2.5 | セキュアソケットレイヤー | 完了 |
| 2.5 | 同時ネットワークポート(http/https) | 完了 |
| 3.0 | ルールエンジン | 完了 |
| 3.5 | サービスのループのタスクをスケジュールします | 完了 |
| 3.5 | マルチスレッドサービス機能 | 完了 |
| 3.5 | 特定のアドレスにサービスをバインドします | 完了 |
| 3.5 | セッション管理 | 完了 |
| 4.0 | HTTPクライアント | 完了 |
| 4.0 | 信号処理 | 完了 |
| 4.5 | APIドキュメント | 完了 |
| 4.5 | ウェブソケット | 完了 |
| 5.0 | クライアント側のSSL証明書 | 発達 |
| 5.0 | リソースキャッシング | 発達 |
| 5.0 | ランタイムの変更 | 発達 |
| 5.0 | HTTP 2コンプライアンス | 発達 |
| 5.0 | リファクタリング、削減、再利用 | アクティブ |
| 方法 | 説明 |
|---|---|
| ツイッター | 質問と機能のリクエストをツイートしてください。 |
| [email protected] | 関連するクエリをサポートします。 |
| [email protected] | 販売関連クエリ。 |