Akses HTTP JSONRPC daripada Halaman Web
Soalan:
Adakah mungkin untuk mewujudkan Sambungan HTTP JSONRPC ke pelayan hanya menggunakan perpustakaan standard alatan?
Pengenalan:
Pakej net/rpc dan net/rpc/jsonrpc menyediakan mekanisme untuk komunikasi antara proses. Artikel ini meneroka kemungkinan menyambung ke pelayan HTTP JSONRPC menggunakan perpustakaan standard, tanpa memerlukan pelaksanaan tersuai.
Penjelasan Terperinci:
Persediaan pelayan HTTP JSONRPC melibatkan mencipta rpc.Server dan mendaftarkan objek perkhidmatan. Pelayan kemudiannya mengendalikan permintaan HTTP menggunakan rpc.DefaultRPCPath dan rpc.DefaultDebugPath. Walau bagaimanapun, pelaksanaan perpustakaan standard menjangkakan klien HTTP untuk memulakan permintaan CONNECT dan menulis data JSON RPC terus ke strim. Pendekatan ini mungkin tidak praktikal daripada penyemak imbas atau alatan baris perintah mudah seperti CURL.
Penyelesaian:
Walaupun terdapat pengehadan yang jelas, adalah mungkin untuk mencipta JSONRPC HTTP pelayan yang boleh menerima permintaan POST. Ini boleh dicapai dengan melaksanakan pengendali HTTP tersuai yang menyesuaikan permintaan/tindak balas HTTP kepada ServerCodec.
Pengendali mentakrifkan struct HttpConn yang membungkus badan permintaan HTTP dan penulis respons sebagai ReadWriteCloser, yang diperlukan oleh ServerCodec.
Kod Ujian Contoh:
Kod ujian yang disediakan menunjukkan cara membuat pelayan HTTP JSONRPC dan membuat permintaan POST kepadanya. Perkhidmatan CakeBaker yang ringkas ditakrifkan dan didaftarkan pada pelayan.
Pengendali HTTP menyediakan permintaan di /bake-me-a-cake dan menggunakan Jsonrpc.NewServerCodec untuk menukar permintaan HTTP kepada ServerCodec.
Permintaan POST dibuat kepada pelayan dengan muatan JSON yang mengandungi panggilan kaedah dan parameter. Pelayan bertindak balas dengan respons JSON yang mengandungi output kaedah.
Kesimpulan:
Pustaka standard boleh digunakan untuk mencipta pelayan HTTP JSONRPC yang boleh menerima permintaan POST. Dengan melaksanakan pengendali HTTP tersuai, pengehadan permintaan CONNECT langsung dipintas, membolehkan penyepaduan mudah dengan halaman web dan alatan baris arahan.
Atas ialah kandungan terperinci Bolehkah Alat Perpustakaan Standard Mencipta Sambungan JSON-RPC HTTP daripada Halaman Web?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!