Open alimy opened 9 months ago
namespace go car include "../base/common.thrift" include "../base/car.thrift" struct AdminCreateCarRequest { 1: string plate_num (api.raw = "plate_num", api.vd = "len($) > 0 && len($) < 25>"), } struct AdminDeleteCarRequest { 1: string id (api.raw = "id", api.vd = "len($) > 0 && len($) < 25>"), } struct AdminGetSomeCarsRequest {} struct AdminGetAllCarsRequest {} struct GetCarsRequest {} struct GetCarRequest { 1: string id (api.raw = "id", api.vd = "len($) > 0 && len($) < 25>"), } service CarService { // for back-stage management common.NilResponse AdminCreateCar(1: AdminCreateCarRequest req) (api.post = "/admin/car", api.chain = "true"), common.NilResponse AdminDeleteCar(1: AdminDeleteCarRequest req) (api.delete = "/admin/car", api.chain = "true"), common.NilResponse AdminGetSomeCars(1: AdminGetSomeCarsRequest req) (api.get = "/admin/car/some"), common.NilResponse AdminGetAllCars(1: AdminGetAllCarsRequest req) (api.get = "/admin/car/all"), // for mini-program common.NilResponse GetCars(1: GetCarsRequest req) (api.get = "/cars"), common.NilResponse GetCar(1: GetCarRequest req) (api.get = "/car"), } (api.group = "v1", api.chain = "true")
我是看到hertz项目中直接使用了Thrift来描述api服务接口然后生成代码,确定了其可行性,又仔细考量了一下go-mir现有的架构,可以引入该功能特性,逐开始着手落地。
Add Thrift idl as DSL support for go-mir