feat: add pagination proto.

This commit is contained in:
tx7do
2023-11-02 18:53:17 +08:00
parent cfea51ec49
commit 76ac31b836
19 changed files with 666 additions and 69 deletions

28
api/buf.lock Normal file
View File

@@ -0,0 +1,28 @@
# Generated by buf. DO NOT EDIT.
version: v1
deps:
- remote: buf.build
owner: envoyproxy
repository: protoc-gen-validate
commit: eac44469a7af47e7839a7f1f3d7ac004
digest: shake256:0feabcde01b6b11e3c75a5e3f807968d5995626546f39c37e5d4205892b3a59cced0ed83b35a2eb9e6dddd3309660ad46b737c9dcd224b425de0a6654ce04417
- remote: buf.build
owner: gnostic
repository: gnostic
commit: 087bc8072ce44e339f213209e4d57bf0
digest: shake256:4689c26f0460fea84c4c277c1b9c7e7d657388c5b4116d1065f907a92100ffbea87de05bbd138a0166411361e1f6ce063b4c0c6002358d39710f3c4a8de788d5
- remote: buf.build
owner: gogo
repository: protobuf
commit: 5461a3dfa9d941da82028ab185dc2a0e
digest: shake256:37c7c75224982038cb1abf45b481ef06716c1f806ffaa162018d0df092bd11a2a9b62c2d0dc0a2ae43beff86b6014fc0eb8c594ffd84d52ade4b08fca901eadc
- remote: buf.build
owner: googleapis
repository: googleapis
commit: 28151c0d0a1641bf938a7672c500e01d
digest: shake256:49215edf8ef57f7863004539deff8834cfb2195113f0b890dd1f67815d9353e28e668019165b9d872395871eeafcbab3ccfdb2b5f11734d3cca95be9e8d139de
- remote: buf.build
owner: kratos
repository: apis
commit: c2de25f14fa445a79a054214f31d17a8
digest: shake256:91c024935d46f7966667c29e4fc933435959f93c3f0e675e1227c99db09905d44f8ec275b770da7659df5a6b18f4710da157b6d8ad760a4a95f60365b231e637

19
api/buf.yaml Normal file
View File

@@ -0,0 +1,19 @@
version: v1
build:
excludes: [third_party]
deps:
- 'buf.build/googleapis/googleapis'
- 'buf.build/envoyproxy/protoc-gen-validate'
- 'buf.build/kratos/apis'
- 'buf.build/gnostic/gnostic'
- 'buf.build/gogo/protobuf'
breaking:
use:
- FILE
lint:
use:
- DEFAULT

View File

@@ -0,0 +1,87 @@
syntax = "proto3";
package pagination;
option go_package = "github.com/tx7do/kratos-bootstrap/gen/api/go/pagination/v1;pagination";
import "google/protobuf/any.proto";
import "google/protobuf/field_mask.proto";
import "gnostic/openapi/v3/annotations.proto";
// 排序类型
enum SortOrder {
// 不排序
UNSORTED = 0;
// 升序
ASCENDING = 1;
// 降序
DESCENDING = 2;
}
// 分页通用请求
message PagingRequest {
// 当前页码
optional int32 page = 1 [
(gnostic.openapi.v3.property) = {
description: "当前页码",
default: {number: 1}
}
];
// 每页的行数
optional int32 pageSize = 2 [
json_name = "pageSize",
(gnostic.openapi.v3.property) = {
description: "每一页的行数",
default: {number: 10}
}
];
// 与过滤参数
optional string query = 3 [
json_name = "query",
(gnostic.openapi.v3.property) = {
description: "与过滤参数",
example: {yaml: "{\"key1\":\"val1\",\"key2\":\"val2\"}"}
}
];
// 或过滤参数
optional string orQuery = 4 [
json_name = "or",
(gnostic.openapi.v3.property) = {
description: "或过滤参数",
example: {yaml: "{\"key1\":\"val1\",\"key2\":\"val2\"}"}
}
];
// 排序条件
repeated string orderBy = 5 [
json_name = "orderBy",
(gnostic.openapi.v3.property) = {
description: "排序条件,字段名前加'-'为降序,否则为升序。"
example: {yaml: "{\"val1\", \"-val2\"}"}
}
];
// 是否不分页
optional bool noPaging = 6 [
json_name = "nopaging",
(gnostic.openapi.v3.property) = {description: "是否不分页"}
];
// 字段掩码
google.protobuf.FieldMask fieldMask = 7 [
json_name = "field_mask",
(gnostic.openapi.v3.property) = {description: "字段掩码"}
];
}
// 分页通用结果
message PagingResponse {
// 总数
int32 total = 1;
// 分页数据
repeated google.protobuf.Any items = 2;
}