Restbed adalah model pemrograman yang komprehensif dan konsisten untuk membangun aplikasi yang membutuhkan komunikasi yang mulus dan aman melalui HTTP, dengan kemampuan untuk memodelkan berbagai proses bisnis, yang dirancang untuk menargetkan lingkungan produksi seluler, tablet, desktop, dan tertanam.
Ini mirip dengan menanamkan Nginx ke lini produk perusahaan Anda sendiri. - Arsitek Solusi, Teknologi Bellrock
| Fitur | Keterangan |
|---|---|
| Websockets | Saluran komunikasi full-duplex pada satu koneksi TCP. |
| Acara server-sent | Acara yang Sent Server memungkinkan streaming server-ke-klien yang efisien dari data acara berbasis teks-EG, pemberitahuan waktu nyata atau pembaruan yang dihasilkan di server. |
| Komet | Model pemungutan suara yang panjang untuk memungkinkan permintaan HTTP yang telah lama dipegang untuk mendorong data dari server ke klien. |
| SSL/TLS | Amankan komunikasi kawat yang memungkinkan Anda mengirimkan data pribadi secara online. |
| Manajemen Sesi | Buat Kegigihan Sesi HTTP Kustom dan Logika Manajemen. |
| HTTP Pipelining | Teknik yang memungkinkan beberapa permintaan HTTP dikirim pada koneksi TCP tunggal tanpa menunggu tanggapan yang sesuai. |
| Parameter jalur | Annotate URI dengan parameter jalur khusus seperti kunci sumber daya, revisi, dll ... |
| Parameter kueri | Parsing parameter kueri otomatis. |
| Filter header | Saring permintaan HTTP yang masuk berdasarkan header. |
| Logging | Kustomisasi bagaimana dan di mana entri log dibuat. |
| Sumber Daya Multi-Path | Berikan beberapa jalur sumber daya untuk peningkatan keterbacaan. |
| Metode yang dapat disesuaikan | Tambahkan metode http khusus Anda sendiri. |
| Kompresi | Adaptasi untuk mengatasi segala bentuk gzip kompresi, mengempis, dll ... |
| Pengkodean | Kemampuan beradaptasi untuk mengatasi segala bentuk pengkodean UTF-32, ASCII, dll ... |
| Aturan mesin | Kurangi kompleksitas dengan memproses permintaan yang masuk dengan unit kode yang dapat dibaca. |
| Http/https | Bangun kemampuan klien dengan verifikasi sertifikat peer SSL opsional. Tercerahkan |
| IPv4/IPv6 | Dukungan jaringan Protokol Internet 4/6. |
| Arsitektur | Arsitektur tunggal atau multi-threaded asinkron, mampu mengatasi masalah C10K. |
| Konverter | Konversi jalur, kueri, dan header bawaan untuk tipe data primer. |
| Otentikasi | Layanan terpisah dan/atau otentikasi tingkat sumber daya. |
| Penanganan kesalahan | Layanan terpisah dan/atau penanganan kesalahan tingkat sumber daya. |
| Alamat Ikatan | Bind HTTP dan/atau Layanan HTTPS untuk memisahkan alamat IP. |
| Penanganan sinyal | Capture OS yang dihasilkan sinyal proses. |
| Dokumentasi | Dokumentasi berkualitas tinggi yang mencakup arsitektur dan API. |
| Kepatuhan | Fleksibilitas untuk mengatasi http 1.0/1.1+ kepatuhan. |
| Dewasa | Aman, stabil, dan diuji secara luas sejak 2013. |
| Masyarakat | Komunitas open source aktif, bersemangat dan energik. |
| Mendukung | Dukungan komersial tersedia dari 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;
}Contoh yang lebih mendalam dapat ditemukan di sini. Untuk melihat rested digunakan dalam kemarahan, silakan kunjungi proyek RESTQ Corvusoft.
© 2013-2020 Corvusoft Limited, Inggris. Semua hak dilindungi undang -undang.
Kerangka kerja rested berlisensi ganda; Lihat lisensi untuk detail lengkap.
Silakan hubungi [email protected], untuk opsi dukungan dan lisensi termasuk pengembangan, pengujian, konsultasi desain, pelatihan, pendampingan, dan tinjauan kode yang dipesan lebih dahulu.
Harap kirimkan semua peningkatan, proposal, dan cacat melalui pelacak masalah; Atau ajukan pertanyaan di StackOverflow yang ditandai #RestBed.
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 testAnda sekarang akan menemukan semua komponen yang diperlukan yang dipasang di sub-folder distribusi.
| Pilihan | Keterangan | Bawaan |
|---|---|---|
| Build_ssl | Aktifkan dukungan SSL/TLS. | Diaktifkan |
| Build_ipc | Aktifkan soket domain UNIX. | Dengan disabilitas |
| Build_tests | Bangun suite tes proyek. | Diaktifkan |
| Build_devel_package | Instal header ke cmake_install_prefix. | Diaktifkan |
| Build_shared_library | Menghasilkan build restbed bersama. | Diaktifkan |
| Build_static_library | Menghasilkan build statis restbed. | Diaktifkan |
Prasyarat: Visual Studio 2022, CMake, Git, Perl.
Menggunakan Command Command Prompt X64 Native Mulailah dengan, jika diperlukan, membangun OpenSSL.
git clone --recursive https://github.com/corvusoft/restbed.git
cd restbeddependencyopenssl
perl Configure [no-]shared
nmake
nmake testJika Anda memilih untuk menggunakan OpenSSL Build (dibagikan) default, Anda harus menyertakan jalur instalasi di lingkungan Anda.
set PATH = restbeddependencyopenssl; %PATH%Jika Anda memilih untuk menggunakan static openssl build (tidak dibagikan), Anda harus menyertakan dependensi tambahan saat menautkan kode aplikasi Anda; Lihat Proyek OpenSSL untuk detail yang lebih futher.
target_link_libraries( my_microservice restbed-static.lib ws2_32.lib advapi32.lib crypt32.lib gdi32.lib user32.lib )Sekarang lanjutkan dengan instruksi build restbed berikut.
mkdir restbedbuild
cd restbedbuild
cmake -G " Visual Studio 17 2022 " [-DBUILD_SSL=NO] [-DBUILD_TESTS=NO] ..
cmake --build . --target ALL_BUILD --config Release
ctestUntuk instruksi Microsoft Visual Studio 14 2015, dan detail lebih lanjut, silakan lihat fitur #17.
Anda dapat mengunduh dan menginstal Restbed menggunakan manajer ketergantungan VCPKG:
git clone https://github.com/Microsoft/vcpkg.git
cd vcpkg
./bootstrap-vcpkg.sh
./vcpkg integrate install
./vcpkg install restbedPort Restbed di VCPKG selalu up to date oleh anggota tim Microsoft dan kontributor komunitas. Jika versi sudah ketinggalan zaman, silakan buat masalah atau tarik permintaan pada repositori VCPKG.
Basis kode ini dimaksudkan sebagai dokumentasi diri sebanyak mungkin. Kami telah memberikan banyak contoh dan menguji suite untuk membantu pengembang bantuan.
Anda dapat menemukan dokumentasi desain dan API terbaru di sini.
| Sumber | Persyaratan |
|---|---|
| Penyusun | C ++ 14 sesuai atau lebih tinggi |
| Os | BSD, Linux, Mac OSX, Windows, Raspbian |
| Tonggak pencapaian | Fitur | Status |
|---|---|---|
| 0,0 | Layanan HTTP asinkron | menyelesaikan |
| 1.0 | Kepatuhan HTTP 1.0 | menyelesaikan |
| 2.0 | Kepatuhan HTTP 1.1 | menyelesaikan |
| 2.5 | Lapisan Soket Aman | menyelesaikan |
| 2.5 | Port jaringan simultan (http/https) | menyelesaikan |
| 3.0 | Aturan mesin | menyelesaikan |
| 3.5 | Jadwalkan tugas pada layanan run-loop | menyelesaikan |
| 3.5 | Kemampuan Layanan Multi-Threaded | menyelesaikan |
| 3.5 | Mengikat layanan ke alamat tertentu | menyelesaikan |
| 3.5 | Manajemen Sesi | menyelesaikan |
| 4.0 | Klien HTTP | menyelesaikan |
| 4.0 | Penanganan sinyal | menyelesaikan |
| 4.5 | Dokumentasi API | menyelesaikan |
| 4.5 | Soket web | menyelesaikan |
| 5.0 | Sertifikat SSL sisi klien | perkembangan |
| 5.0 | Caching sumber daya | perkembangan |
| 5.0 | Modifikasi runtime | perkembangan |
| 5.0 | Kepatuhan HTTP 2 | perkembangan |
| 5.0 | Refactor, kurangi, gunakan kembali | aktif |
| Metode | Keterangan |
|---|---|
| Tweet kami pertanyaan & permintaan fitur Anda. | |
| [email protected] | Dukungan pertanyaan terkait. |
| [email protected] | Kueri terkait penjualan. |