- Building Microservices with Go
- Nic Jackson
- 212字
- 2021-07-15 17:28:16
Naming for RPC
With RPC you do not have the luxury of using HTTP verbs to confer the intent of the API, for example, you have the collection users. With an HTTP API you would be able to split up the various actions using GET, POST, DELETE, and so on. This is not possible with an RPC API and you need to think in the same way as if you were writing methods inside your Go code, so for example:
GET /v1/users
The preceding code might be written as an RPC method as follows:
Users.v1.Users
GET /v1/users/123434
Alternatively, it might be written as an RPC method as follows:
Users.v1.User
Sub collections become a little less semantic, whereas in a RESTful API you would be able to do the following:
GET /v1/users/12343/permissions/1232
You cannot do this with an RPC API and you must explicitly specify the method as a separate entity:
Permissions.v1.Permission
The method name also needs to infer the action that the API is going to perform; you cannot rely on the use of HTTP verbs, so in the instance that you have a method that can delete a user you would have to add the delete verb into the method call, for example:
DELETE /v1/users/123123
The preceding code would become:
Users.v1.DeleteUser
- Node.js Design Patterns
- Java面向對象軟件開發
- 深度學習經典案例解析:基于MATLAB
- NativeScript for Angular Mobile Development
- INSTANT Sencha Touch
- 新編Premiere Pro CC從入門到精通
- Java 11 Cookbook
- Mastering JavaScript High Performance
- 代碼閱讀
- Xamarin Blueprints
- 數據結構與算法詳解
- Spring Boot學習指南:構建云原生Java和Kotlin應用程序
- 區塊鏈原理、架構與應用(第2版)
- Practical XMPP
- Mastering Wireless Penetration Testing for Highly Secured Environments