syntax = "proto3"; import "google/protobuf/timestamp.proto"; import "gogoproto/gogo.proto"; // import "validate/validate.proto"; import "google/api/annotations.proto"; import "google/protobuf/empty.proto"; package api.v1; option go_package = "moredoc/api/v1;v1"; option java_multiple_files = true; option java_package = "api.v1"; // banner,轮播图 message Banner { int64 id = 1; // 主键 string title = 2; // 标题,名称 string path = 3; // 图片地址 int32 sort = 4; // 排序,值越大越靠前 bool enable = 5; // 是否启用 int32 type = 6; // 类型,如PC横幅、小程序横幅等,见 web/utils/enum.js 中的枚举 string url = 7; // 跳转地址 string description = 8; // 描述 google.protobuf.Timestamp created_at = 9 [ (gogoproto.stdtime) = true ]; // 创建时间 google.protobuf.Timestamp updated_at = 10 [ (gogoproto.stdtime) = true ]; // 更新时间 } // 删除横幅 message DeleteBannerRequest { repeated int64 id = 1; } // 获取横幅 message GetBannerRequest { int64 id = 1; } // 横幅列表请求 message ListBannerRequest { int64 page = 1; // 页码 int64 size = 2; // 每页数量 repeated int32 type = 3; // 类型 repeated bool enable = 4; // 是否启用 string wd = 5; // 搜索关键字 repeated string field = 6; // 查询字段,不指定,则查询全部 } // 横幅列表 message ListBannerReply { int64 total = 1; // 总数 repeated Banner banner = 2; // 横幅数组 } // 横幅API服务 service BannerAPI { // 创建横幅 rpc CreateBanner(Banner) returns (Banner) { option (google.api.http) = { post : '/api/v1/banner', body : '*', }; } // 更新横幅 rpc UpdateBanner(Banner) returns (google.protobuf.Empty) { option (google.api.http) = { put : '/api/v1/banner', body : '*', }; } // 删除横幅 rpc DeleteBanner(DeleteBannerRequest) returns (google.protobuf.Empty) { option (google.api.http) = { delete : '/api/v1/banner', }; } // 查询横幅 rpc GetBanner(GetBannerRequest) returns (Banner) { option (google.api.http) = { get : '/api/v1/banner', }; } // 横幅列表 rpc ListBanner(ListBannerRequest) returns (ListBannerReply) { option (google.api.http) = { get : '/api/v1/banner/list', }; } }