tochka-developers / jsonrpc Goto Github PK
View Code? Open in Web Editor NEWJsonRpc Server extension for Laravel/Lumen
License: MIT License
JsonRpc Server extension for Laravel/Lumen
License: MIT License
Дайте маленький пример, как вернуть из метода ошибку ?
Имеется ввиду как вернуть JSON сообщающий об ошибке...
{"jsonrpc": "2.0", "error": {"code": 123, "message": "Моё описание ошибки"}, "id": "1"}
How to reproduce:
Configuration:
[
'controllerNamespace' => 'App\\Http\\Controllers\\V1\\',
'controllerPostfix' => 'Controller',
'defaultController' => 'Api',
'routes' => [
'/api/v1/jsonrpc',
],
]
Declared route:
$router->post('/api/v1/jsonrpc/{endpoint}[/{action}]', function (Illuminate\Http\Request $request, \Tochka\JsonRpc\JsonRpcServer $server, $endpoint, $action = null) {
return $server->handle($request, ['endpoint' => $endpoint, 'action' => $action]);
});
Controller:
file: app/Http/Controllers/V1/Foo/BarController.php
<?php
namespace App\Http\Controllers\V1\Foo;
use Tochka\JsonRpc\Traits\JsonRpcController;
class BarController
{
use JsonRpcController;
public function test()
{
return "This is a test!!!";
}
}
RPC call works fine:
curl -X 'POST' -H 'application/json' --data '{"jsonrpc": "2.0", "method": "test"}' 'http://my-test-service.mydev/api/v1/jsonrpc/foo/bar' -v
Note: Unnecessary use of -X or --request, POST is already inferred.
* Trying 127.0.0.1...
* TCP_NODELAY set
* Connected to my-test-service.mydev (127.0.0.1) port 80 (#0)
> POST /api/v1/jsonrpc/foo/bar HTTP/1.1
> Host: my-test-service.mydev
> User-Agent: curl/7.54.0
> Accept: */*
> Content-Length: 36
> Content-Type: application/x-www-form-urlencoded
>
* upload completely sent off: 36 out of 36 bytes
< HTTP/1.1 200 OK
< Server: nginx/1.13.12
< Content-Type: application/json
< Transfer-Encoding: chunked
< Connection: keep-alive
< Vary: Accept-Encoding
< X-Powered-By: PHP/7.2.4
< Cache-Control: no-cache, private
< Date: Thu, 17 May 2018 15:22:06 GMT
<
* Connection #0 to host my-test-service.mydev left intact
{"jsonrpc":"2.0","result":"This is a test!!!"}%
{
"jsonrpc": "2.0",
"result": "This is a test!!!"
}
SMD call:
curl -X 'POST' -H 'application/json' --data '{"jsonrpc": "2.0", "method": "test"}' 'http://my-test-service.mydev/api/v1/jsonrpc/foo/bar?smd' -v
Note: Unnecessary use of -X or --request, POST is already inferred.
* Trying 127.0.0.1...
* TCP_NODELAY set
* Connected to my-test-service.mydev (127.0.0.1) port 80 (#0)
> POST /api/v1/jsonrpc/foo/bar?smd HTTP/1.1
> Host: my-test-service.mydev
> User-Agent: curl/7.54.0
> Accept: */*
> Content-Length: 36
> Content-Type: application/x-www-form-urlencoded
>
* upload completely sent off: 36 out of 36 bytes
< HTTP/1.1 200 OK
< Server: nginx/1.13.12
< Content-Type: application/json
< Transfer-Encoding: chunked
< Connection: keep-alive
< Vary: Accept-Encoding
< X-Powered-By: PHP/7.2.4
< Cache-Control: no-cache, private
< Date: Thu, 17 May 2018 15:23:17 GMT
<
* Connection #0 to host my-test-service.mydev left intact
{"transport":"POST","envelope":"JSON-RPC-2.0","SMDVersion":"2.0","contentType":"application\/json","generator":"Tochka\/JsonRpc","target":"\/","description":"JsonRpc Server","namedParameters":true,"acl":false,"services":[]}
{
"transport": "POST",
"envelope": "JSON-RPC-2.0",
"SMDVersion": "2.0",
"contentType": "application/json",
"generator": "Tochka/JsonRpc",
"target": "/",
"description": "JsonRpc Server",
"namedParameters": true,
"acl": false,
"services": []
}
Environment:
Laravel Valet
PHP 7.2.4
Не устанавливается на 7 ларавель
При установке по readme пишет
Problem 1
- Conclusion: don't install tochka-developers/jsonrpc v3.0.1
- Conclusion: don't install tochka-developers/jsonrpc v3.0.0
- Conclusion: remove laravel/framework v7.13.0
- Conclusion: don't install tochka-developers/jsonrpc v3.0.1|remove phpdocumentor/reflection-docblock 5.1.0|install phpdocumentor/reflection-docblock 4.3.0|install phpdocumentor/reflection-docblock 4.3.1
- Conclusion: don't install tochka-developers/jsonrpc v3.0.1|don't install phpdocumentor/reflection-docblock 5.1.0|install phpdocumentor/reflection-docblock 4.3.0|install phpdocumentor/reflection-docblock 4.3.1
- Conclusion: don't install tochka-developers/jsonrpc v3.0.1|remove phpdocumentor/reflection-docblock 5.1.0|install phpdocumentor/reflection-docblock 4.3.0|install phpdocumentor/reflection-docblock 4.3.1
- Conclusion: don't install tochka-developers/jsonrpc v3.0.1|don't install phpdocumentor/reflection-docblock 5.1.0|install phpdocumentor/reflection-docblock 4.3.0|install phpdocumentor/reflection-docblock 4.3.1
- Conclusion: don't install tochka-developers/jsonrpc v3.0.0|remove phpdocumentor/reflection-docblock 5.1.0|install phpdocumentor/reflection-docblock 4.3.0|install phpdocumentor/reflection-docblock 4.3.1
- Conclusion: don't install tochka-developers/jsonrpc v3.0.0|don't install phpdocumentor/reflection-docblock 5.1.0|install phpdocumentor/reflection-docblock 4.3.0|install phpdocumentor/reflection-docblock 4.3.1
- Installation request for phpdocumentor/reflection-common (locked at 2.1.0) -> satisfiable by phpdocumentor/reflection-common[2.1.0].
- Conclusion: don't install tochka-developers/jsonrpc v3.0.0|remove phpdocumentor/reflection-docblock 5.1.0|install phpdocumentor/reflection-docblock 4.3.0|install phpdocumentor/reflection-docblock 4.3.1
- Conclusion: don't install tochka-developers/jsonrpc v3.0.0|don't install phpdocumentor/reflection-docblock 5.1.0|install phpdocumentor/reflection-docblock 4.3.0|install phpdocumentor/reflection-docblock 4.3.1
- Installation request for phpdocumentor/reflection-docblock (locked at 5.1.0) -> satisfiable by phpdocumentor/reflection-docblock[5.1.0].
- Conclusion: don't install laravel/framework v7.13.0
- tochka-developers/jsonrpc v3.0.0-beta1 requires illuminate/container 5.7.|5.8.|^6.0 -> satisfiable by laravel/framework[5.7.x-dev, 5.8.x-dev, 6.x-dev], illuminate/container[5.7.17, 5.7.18, 5.7.19, 5.7.x-dev, 5.8.x-dev, 6.x-dev, v5.7.0, v5.7.1, v5.7.10, v5.7.11, v5.7.15, v5.7.2, v5.7.20, v5.7.21, v5.7.22, v5.7.23, v5.7.26, v5.7.27, v5.7.28, v5.7.3, v5.7.4, v5.7.5, v5.7.6, v5.7.7, v5.7.8, v5.7.9, v5.8.0, v5.8.11, v5.8.12, v5.8.14, v5.8.15, v5.8.17, v5.8.18, v5.8.19, v5.8.2, v5.8.20, v5.8.22, v5.8.24, v5.8.27, v5.8.28, v5.8.29, v5.8.3, v5.8.30, v5.8.31, v5.8.32, v5.8.33, v5.8.34, v5.8.35, v5.8.36, v5.8.4, v5.8.8, v5.8.9, v6.0.0, v6.0.1, v6.0.2, v6.0.3, v6.0.4, v6.1.0, v6.10.0, v6.11.0, v6.12.0, v6.13.0, v6.13.1, v6.14.0, v6.15.0, v6.15.1, v6.16.0, v6.17.0, v6.17.1, v6.18.0, v6.18.1, v6.18.10, v6.18.11, v6.18.12, v6.18.13, v6.18.14, v6.18.15, v6.18.16, v6.18.17, v6.18.18, v6.18.2, v6.18.3, v6.18.4, v6.18.5, v6.18.6, v6.18.7, v6.18.8, v6.18.9, v6.2.0, v6.3.0, v6.4.1, v6.5.0, v6.5.1, v6.5.2, v6.6.0, v6.6.1, v6.6.2, v6.7.0, v6.8.0].
- tochka-developers/jsonrpc v3.0.0-beta2 requires illuminate/container 5.7.|5.8.|^6.0 -> satisfiable by laravel/framework[5.7.x-dev, 5.8.x-dev, 6.x-dev], illuminate/container[5.7.17, 5.7.18, 5.7.19, 5.7.x-dev, 5.8.x-dev, 6.x-dev, v5.7.0, v5.7.1, v5.7.10, v5.7.11, v5.7.15, v5.7.2, v5.7.20, v5.7.21, v5.7.22, v5.7.23, v5.7.26, v5.7.27, v5.7.28, v5.7.3, v5.7.4, v5.7.5, v5.7.6, v5.7.7, v5.7.8, v5.7.9, v5.8.0, v5.8.11, v5.8.12, v5.8.14, v5.8.15, v5.8.17, v5.8.18, v5.8.19, v5.8.2, v5.8.20, v5.8.22, v5.8.24, v5.8.27, v5.8.28, v5.8.29, v5.8.3, v5.8.30, v5.8.31, v5.8.32, v5.8.33, v5.8.34, v5.8.35, v5.8.36, v5.8.4, v5.8.8, v5.8.9, v6.0.0, v6.0.1, v6.0.2, v6.0.3, v6.0.4, v6.1.0, v6.10.0, v6.11.0, v6.12.0, v6.13.0, v6.13.1, v6.14.0, v6.15.0, v6.15.1, v6.16.0, v6.17.0, v6.17.1, v6.18.0, v6.18.1, v6.18.10, v6.18.11, v6.18.12, v6.18.13, v6.18.14, v6.18.15, v6.18.16, v6.18.17, v6.18.18, v6.18.2, v6.18.3, v6.18.4, v6.18.5, v6.18.6, v6.18.7, v6.18.8, v6.18.9, v6.2.0, v6.3.0, v6.4.1, v6.5.0, v6.5.1, v6.5.2, v6.6.0, v6.6.1, v6.6.2, v6.7.0, v6.8.0].
- tochka-developers/jsonrpc v3.0.0-beta3 requires illuminate/container 5.7.|5.8.|^6.0 -> satisfiable by laravel/framework[5.7.x-dev, 5.8.x-dev, 6.x-dev], illuminate/container[5.7.17, 5.7.18, 5.7.19, 5.7.x-dev, 5.8.x-dev, 6.x-dev, v5.7.0, v5.7.1, v5.7.10, v5.7.11, v5.7.15, v5.7.2, v5.7.20, v5.7.21, v5.7.22, v5.7.23, v5.7.26, v5.7.27, v5.7.28, v5.7.3, v5.7.4, v5.7.5, v5.7.6, v5.7.7, v5.7.8, v5.7.9, v5.8.0, v5.8.11, v5.8.12, v5.8.14, v5.8.15, v5.8.17, v5.8.18, v5.8.19, v5.8.2, v5.8.20, v5.8.22, v5.8.24, v5.8.27, v5.8.28, v5.8.29, v5.8.3, v5.8.30, v5.8.31, v5.8.32, v5.8.33, v5.8.34, v5.8.35, v5.8.36, v5.8.4, v5.8.8, v5.8.9, v6.0.0, v6.0.1, v6.0.2, v6.0.3, v6.0.4, v6.1.0, v6.10.0, v6.11.0, v6.12.0, v6.13.0, v6.13.1, v6.14.0, v6.15.0, v6.15.1, v6.16.0, v6.17.0, v6.17.1, v6.18.0, v6.18.1, v6.18.10, v6.18.11, v6.18.12, v6.18.13, v6.18.14, v6.18.15, v6.18.16, v6.18.17, v6.18.18, v6.18.2, v6.18.3, v6.18.4, v6.18.5, v6.18.6, v6.18.7, v6.18.8, v6.18.9, v6.2.0, v6.3.0, v6.4.1, v6.5.0, v6.5.1, v6.5.2, v6.6.0, v6.6.1, v6.6.2, v6.7.0, v6.8.0].
- Can only install one of: laravel/framework[5.7.x-dev, v7.13.0].
- Can only install one of: laravel/framework[5.8.x-dev, v7.13.0].
- Can only install one of: laravel/framework[6.x-dev, v7.13.0].
- don't install illuminate/container 5.7.17|don't install laravel/framework v7.13.0
- don't install illuminate/container 5.7.18|don't install laravel/framework v7.13.0
- don't install illuminate/container 5.7.19|don't install laravel/framework v7.13.0
- don't install illuminate/container 5.7.x-dev|don't install laravel/framework v7.13.0
- don't install illuminate/container v5.7.0|don't install laravel/framework v7.13.0
- don't install illuminate/container v5.7.1|don't install laravel/framework v7.13.0
- don't install illuminate/container v5.7.10|don't install laravel/framework v7.13.0
- don't install illuminate/container v5.7.11|don't install laravel/framework v7.13.0
- don't install illuminate/container v5.7.15|don't install laravel/framework v7.13.0
- don't install illuminate/container v5.7.2|don't install laravel/framework v7.13.0
- don't install illuminate/container v5.7.20|don't install laravel/framework v7.13.0
- don't install illuminate/container v5.7.21|don't install laravel/framework v7.13.0
- don't install illuminate/container v5.7.22|don't install laravel/framework v7.13.0
- don't install illuminate/container v5.7.23|don't install laravel/framework v7.13.0
- don't install illuminate/container v5.7.26|don't install laravel/framework v7.13.0
- don't install illuminate/container v5.7.27|don't install laravel/framework v7.13.0
- don't install illuminate/container v5.7.28|don't install laravel/framework v7.13.0
- don't install illuminate/container v5.7.3|don't install laravel/framework v7.13.0
- don't install illuminate/container v5.7.4|don't install laravel/framework v7.13.0
- don't install illuminate/container v5.7.5|don't install laravel/framework v7.13.0
- don't install illuminate/container v5.7.6|don't install laravel/framework v7.13.0
- don't install illuminate/container v5.7.7|don't install laravel/framework v7.13.0
- don't install illuminate/container v5.7.8|don't install laravel/framework v7.13.0
- don't install illuminate/container v5.7.9|don't install laravel/framework v7.13.0
- don't install illuminate/container 5.8.x-dev|don't install laravel/framework v7.13.0
- don't install illuminate/container v5.8.0|don't install laravel/framework v7.13.0
- don't install illuminate/container v5.8.11|don't install laravel/framework v7.13.0
- don't install illuminate/container v5.8.12|don't install laravel/framework v7.13.0
- don't install illuminate/container v5.8.14|don't install laravel/framework v7.13.0
- don't install illuminate/container v5.8.15|don't install laravel/framework v7.13.0
- don't install illuminate/container v5.8.17|don't install laravel/framework v7.13.0
- don't install illuminate/container v5.8.18|don't install laravel/framework v7.13.0
- don't install illuminate/container v5.8.19|don't install laravel/framework v7.13.0
- don't install illuminate/container v5.8.2|don't install laravel/framework v7.13.0
- don't install illuminate/container v5.8.20|don't install laravel/framework v7.13.0
- don't install illuminate/container v5.8.22|don't install laravel/framework v7.13.0
- don't install illuminate/container v5.8.24|don't install laravel/framework v7.13.0
- don't install illuminate/container v5.8.27|don't install laravel/framework v7.13.0
- don't install illuminate/container v5.8.28|don't install laravel/framework v7.13.0
- don't install illuminate/container v5.8.29|don't install laravel/framework v7.13.0
- don't install illuminate/container v5.8.3|don't install laravel/framework v7.13.0
- don't install illuminate/container v5.8.30|don't install laravel/framework v7.13.0
- don't install illuminate/container v5.8.31|don't install laravel/framework v7.13.0
- don't install illuminate/container v5.8.32|don't install laravel/framework v7.13.0
- don't install illuminate/container v5.8.33|don't install laravel/framework v7.13.0
- don't install illuminate/container v5.8.34|don't install laravel/framework v7.13.0
- don't install illuminate/container v5.8.35|don't install laravel/framework v7.13.0
- don't install illuminate/container v5.8.36|don't install laravel/framework v7.13.0
- don't install illuminate/container v5.8.4|don't install laravel/framework v7.13.0
- don't install illuminate/container v5.8.8|don't install laravel/framework v7.13.0
- don't install illuminate/container v5.8.9|don't install laravel/framework v7.13.0
- don't install illuminate/container 6.x-dev|don't install laravel/framework v7.13.0
- don't install illuminate/container v6.0.0|don't install laravel/framework v7.13.0
- don't install illuminate/container v6.0.1|don't install laravel/framework v7.13.0
- don't install illuminate/container v6.0.2|don't install laravel/framework v7.13.0
- don't install illuminate/container v6.0.3|don't install laravel/framework v7.13.0
- don't install illuminate/container v6.0.4|don't install laravel/framework v7.13.0
- don't install illuminate/container v6.1.0|don't install laravel/framework v7.13.0
- don't install illuminate/container v6.10.0|don't install laravel/framework v7.13.0
- don't install illuminate/container v6.11.0|don't install laravel/framework v7.13.0
- don't install illuminate/container v6.12.0|don't install laravel/framework v7.13.0
- don't install illuminate/container v6.13.0|don't install laravel/framework v7.13.0
- don't install illuminate/container v6.13.1|don't install laravel/framework v7.13.0
- don't install illuminate/container v6.14.0|don't install laravel/framework v7.13.0
- don't install illuminate/container v6.15.0|don't install laravel/framework v7.13.0
- don't install illuminate/container v6.15.1|don't install laravel/framework v7.13.0
- don't install illuminate/container v6.16.0|don't install laravel/framework v7.13.0
- don't install illuminate/container v6.17.0|don't install laravel/framework v7.13.0
- don't install illuminate/container v6.17.1|don't install laravel/framework v7.13.0
- don't install illuminate/container v6.18.0|don't install laravel/framework v7.13.0
- don't install illuminate/container v6.18.1|don't install laravel/framework v7.13.0
- don't install illuminate/container v6.18.10|don't install laravel/framework v7.13.0
- don't install illuminate/container v6.18.11|don't install laravel/framework v7.13.0
- don't install illuminate/container v6.18.12|don't install laravel/framework v7.13.0
- don't install illuminate/container v6.18.13|don't install laravel/framework v7.13.0
- don't install illuminate/container v6.18.14|don't install laravel/framework v7.13.0
- don't install illuminate/container v6.18.15|don't install laravel/framework v7.13.0
- don't install illuminate/container v6.18.16|don't install laravel/framework v7.13.0
- don't install illuminate/container v6.18.17|don't install laravel/framework v7.13.0
- don't install illuminate/container v6.18.18|don't install laravel/framework v7.13.0
- don't install illuminate/container v6.18.2|don't install laravel/framework v7.13.0
- don't install illuminate/container v6.18.3|don't install laravel/framework v7.13.0
- don't install illuminate/container v6.18.4|don't install laravel/framework v7.13.0
- don't install illuminate/container v6.18.5|don't install laravel/framework v7.13.0
- don't install illuminate/container v6.18.6|don't install laravel/framework v7.13.0
- don't install illuminate/container v6.18.7|don't install laravel/framework v7.13.0
- don't install illuminate/container v6.18.8|don't install laravel/framework v7.13.0
- don't install illuminate/container v6.18.9|don't install laravel/framework v7.13.0
- don't install illuminate/container v6.2.0|don't install laravel/framework v7.13.0
- don't install illuminate/container v6.3.0|don't install laravel/framework v7.13.0
- don't install illuminate/container v6.4.1|don't install laravel/framework v7.13.0
- don't install illuminate/container v6.5.0|don't install laravel/framework v7.13.0
- don't install illuminate/container v6.5.1|don't install laravel/framework v7.13.0
- don't install illuminate/container v6.5.2|don't install laravel/framework v7.13.0
- don't install illuminate/container v6.6.0|don't install laravel/framework v7.13.0
- don't install illuminate/container v6.6.1|don't install laravel/framework v7.13.0
- don't install illuminate/container v6.6.2|don't install laravel/framework v7.13.0
- don't install illuminate/container v6.7.0|don't install laravel/framework v7.13.0
- don't install illuminate/container v6.8.0|don't install laravel/framework v7.13.0
- Installation request for laravel/framework (locked at v7.13.0, required as ^7.0) -> satisfiable by laravel/framework[v7.13.0].
- Installation request for tochka-developers/jsonrpc ^3.0 -> satisfiable by tochka-developers/jsonrpc[v3.0.0, v3.0.0-beta1, v3.0.0-beta2, v3.0.0-beta3, v3.0.1].
Installation failed, reverting ./composer.json to its original content.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.