Files
full/module/base/cms/proto/post.proto

187 lines
8.1 KiB
Protocol Buffer
Raw Normal View History

syntax = "proto3";
package cms;
option go_package = "bsm/full/module/base/cms/pb;cms";
import "protobuf/blocks.proto";
// 正文
service Post{
//文章列表
rpc Fetch(PostListRequest) returns (PostListReply) {};
//获取文章详情 By Identity
rpc GetByIdentity (GetPostRequest) returns (PostItem) {};
//获取文章详情 By Key
rpc GetByKey (GetPostByKeyRequest) returns (PostItem) {};
//搜索文章
rpc Search (blocks.CmsSearchRequest) returns (PostListReply) {};
//发布文章
rpc Create(PostItem) returns (blocks.StatusReply) {};
//修改文章
rpc Modify(PostItem) returns (blocks.StatusReply) {};
//删除文章
rpc Delete(blocks.IdentRequest) returns (blocks.StatusReply) {};
// 文章点赞处理
rpc IncrPostLike(PostOpIdentityRequest) returns (blocks.StatusReply) {};
// 文章点赞取消处理
rpc DescPostLike(PostOpIdentityRequest) returns (blocks.StatusReply) {};
// 文章点踩处理
rpc IncrPostUnlike(PostOpIdentityRequest) returns (blocks.StatusReply) {};
// 文章点踩取消处理
rpc DescPostUnlike(PostOpIdentityRequest) returns (blocks.StatusReply) {};
//评论列表
rpc CommentList(CommentListRequest) returns (CommentListResponse) {};
//发布评论
rpc AddComment(CommentItem) returns (blocks.StatusReply) {};
//修改评论
rpc ModifyComment(CommentItem) returns (blocks.StatusReply) {};
//删除评论
rpc DeleteComment(DeleteCommentRequest) returns (blocks.StatusReply) {};
// 评论点赞处理
rpc IncrCommentLike(CommentOpIdentityRequest) returns (blocks.StatusReply) {};
// 评论点赞取消处理
rpc DescCommentLike(CommentOpIdentityRequest) returns (blocks.StatusReply) {};
// 评论点踩处理
rpc IncrCommentUnlike(CommentOpIdentityRequest) returns (blocks.StatusReply) {};
// 评论点踩取消处理
rpc DescCommentUnlike(CommentOpIdentityRequest) returns (blocks.StatusReply) {};
}
// 删除评论
message DeleteCommentRequest{
string identity = 1; // 需要删除的评论的唯一标识
string post_identity = 2 [json_name = "post_identity"]; // 文章唯一标识
}
// 根据KEY获取内容请求
message GetPostByKeyRequest{
string key = 3; //<必传> 内容页的key
}
// 文章
message PostItem{
string site_identity = 1 [json_name = "site_identity"];
string identity = 2; // 文章唯一标识
int64 owner_id = 3 [json_name = "owner_id"]; // 作者ID
string owner_identity = 4 [json_name = "owner_identity"]; // 作者唯一标识
repeated string category_identity_array = 5 [json_name = "category_identity_array"]; // <必传>,所属分类Identity 列表
repeated string tags_identity_array = 6 [json_name = "tags_identity_array"]; // 标签集Identity 列表
string title = 7; // <必传>,标题
string cover_path = 8 [json_name = "cover_path"]; //封面
string author = 9; // 作者
string author_identity = 10 [json_name = "author_identity"];
string content = 11; // <必传>,内容
string target_url = 12 [json_name = "target_url"]; // 跳转目标地址
string source_url = 13 [json_name = "source_url"]; // 文章来源地址
int64 hits = 14; //点击量
repeated string accessory_identity_array = 15 [json_name = "accessory_identity_array"]; //附件Identity 列表
bool has_accessory = 16 [json_name = "has_accessory"]; //是否有附件,默认没有
string created_at = 17 [json_name = "created_at"]; // 创建时间
string updated_at = 18 [json_name = "updated_at"]; //更新时间
string description = 19; //简介
int64 like_hits = 20 [json_name = "like_hits"]; //点赞量
int64 unlike_hits = 21 [json_name = "unlike_hits"]; //点踩量
int64 comment_hits = 22 [json_name = "comment_hits"]; //评论量
int32 post_type = 23 [json_name = "post_type"]; // 用户自定义文章类型
string rights = 24; //权限
string key = 25; // content key
repeated blocks.CmsCategoryItem category_data = 26 [json_name = "category_data"]; // 分类数据
repeated blocks.CmsTagsItem tags_data = 27 [json_name = "tags_data"]; // 标签数据
repeated blocks.CmsAccessoryItem accessory_data = 28 [json_name = "accessory_data"]; //附件数据
string lang = 29 [json_name = "lang"]; // 语言
string source_origin = 30 [json_name = "source_origin"]; // 来源方简称
string extend_url = 31 [json_name = "extend_url"]; // 扩展URL
string extend_data = 32 [json_name = "extend_data"]; // 扩展:数据
string extend_img = 33 [json_name = "extend_img"]; // 扩展:图片
string extend_desc = 34 [json_name = "extend_desc"]; // 扩展:描述
string published = 35 [json_name = "published"]; // 事件发生时间
// 扩展文章唯一键值用于URL等
string hash = 36 [json_name = "hash"];
}
// 文章列表请求
message PostListRequest{
int64 page = 1; // 页码,默认第一页
int64 size = 2; // 单页显示数量,默认10,最多50
string author_identity = 3 [json_name = "author_identity"]; //发布者唯一标识,可选
string category_identity = 4 [json_name = "category_identity"]; // 文章类型,可选
string keyword = 5; // 根据文章名称模糊查找
int32 type = 6; // 根据用户自定义文章类型过滤,可选,默认0,全部查找
}
// 文章列表回复
message PostListReply{
repeated PostItem data = 1; // 数据
int64 count = 2; // 总数量
}
// 获取文章详情请求
message GetPostRequest {
string identity = 1; // 必传唯一标识
string author_identity = 2 [json_name = "author_identity"]; // 必传作者唯一标识
}
// 评论
message CommentItem {
string identity = 1; // 评论唯一标识
string post_identity = 2 [json_name = "post_identity"]; // 文章唯一标识
int64 parent_id = 3 [json_name = "parent_id"]; // 为空表示顶级评论
string Cms = 4; // 评论内容
string reply_identity = 5 [json_name = "reply_identity"]; // 回复者唯一 标识
string created_at = 6 [json_name = "created_at"]; // 创建时间
string updated_at = 7 [json_name = "updated_at"]; // 更新时间
repeated CommentItem list = 8; //回复列表
int64 like_hits = 9 [json_name = "like_hits"]; // 点赞量
int64 unlike_hits = 10 [json_name = "unlike_hits"]; // 点踩量
int64 comment_hits = 11 [json_name = "comment_hits"]; // 评论量
string owner_name = 12 [json_name = "owner_name"]; // 作者名称
string owner_identity = 13 [json_name = "owner_identity"]; // 作者标识
string role = 14 [json_name = "role"]; // 角色
}
// 评论列表
message CommentListRequest{
string post_identity = 1 [json_name = "post_identity"]; //必填 评论唯一标识
int64 page = 2; // 页码,默认第一页
int64 size = 3; // 单页显示数量,默认10,最多50
}
// 评论列表回复
message CommentListResponse{
repeated CommentItem list = 1; // 数据
int64 count = 2; // 总数量
}
// 文章点赞处理请求
message PostOpIdentityRequest{
string post_identity = 1 [json_name = "post_identity"]; //必传 文章唯一标识
string op_identity = 2 [json_name = "op_identity"]; // 必传 操作者唯一标识
}
// 评论点赞处理请求
message CommentOpIdentityRequest{
string comment_identity = 1 [json_name = "comment_identity"]; //必填 评论唯一标识
string op_identity = 2 [json_name = "op_identity"]; //必填 操作者唯一标识
}