JSON RPC Server is a package to build JSON-RPC 2.0 APIs using the Laravel framework. The package is designed to integrate a lightweight remote procedure call protocol that is simple to use:
1namespace App\Http\Procedures; 2 3use Sajya\Server\Procedure; 4 5class TennisProcedure extends Procedure 6{ 7 /** 8 * The name of the procedure that will be 9 * displayed and taken into account in the search10 */11 public static string $name = 'tennis';12 13 /**14 * Execute the procedure.15 *16 * @return string17 */18 public function ping()19 {20 return 'pong';21 }22}
Given the above procedure class, this package enables you to call it easily using the following route:
1use App\Http\Procedures\TennisProcedure;2 3Route::rpc('/v1/endpoint', [TennisProcedure::class])4 ->name('rpc.endpoint');
Here's an example of calling the endpoint:
1curl 'http://127.0.0.1:8000/api/v1/endpoint' \2 --data-binary '{"jsonrpc":"2.0","method":"tennis@ping","id":1}'3 4# Result: {"id":"1","result":"pong","jsonrpc":"2.0"}
Using JSON-RPC with this package, you can batch-process work that allows you to optimize your application by combining multiple requests into a single JSON object:
1[ 2 { 3 "jsonrpc": "2.0", 4 "method": "message@create", 5 "params": "...", 6 "id": 1 7 }, 8 { 9 "jsonrpc": "2.0",10 "method": "message@create",11 "params": "...",12 "id": 213 }14]
This package can also help ease building a JSON RPC API with the following features:
- Authentication
- Data Validation within procedures
- API documentation generation
- Parameter binding resolution in procedures, including model binding
- Feature testing of JSON RPC procedures
- Gzip compression middleware
You can learn more about this package, get full installation instructions, and view the source code on GitHub. This package also has useful documentation to get started.
0 comments:
Post a Comment
Thanks