It looks like a mix of RPC and REST.
REST is a convention, and shapes and exploits resources using standards. Given an URL that exposes a resource, you can tell how the resource can be consumed.
With modern tools, and thanks to that convention, it is not required to explicitly write every single route for a REST service. As an example, in Laravel you write:
- Code: Select all Expand view RUN
Route::Resource(''/api/user/:userId/cart', UserCartController::class) and you are done!
In the other side, in Javascript you can use things like RestOMatic, that builds the whole service to consume a REST service in 2 lines.
With the OApi any of the methods are predictable, you write every single one in both sides of the application, going against the principle "Convention over Configuration",
http://rubyonrails.org/doctrine/#convention-over-configurationFor complex resources, GraphQL looks a better alternative, givin the power of SQL-like querys over the same path REST uses.
KR