Files
services/rss/proto/rss.proto
2021-09-02 15:23:24 +01:00

90 lines
1.6 KiB
Protocol Buffer

syntax = "proto3";
package rss;
option go_package = "./proto;rss";
service Rss {
rpc Add(AddRequest) returns (AddResponse) {}
rpc Remove(RemoveRequest) returns (RemoveResponse) {}
rpc Feed(FeedRequest) returns (FeedResponse) {}
rpc List(ListRequest) returns (ListResponse) {}
}
message Feed {
// unique id
string id = 1;
// rss feed name
// eg. a16z
string name = 2;
// rss feed url
// eg. http://a16z.com/feed/
string url = 3;
// category of the feed e.g news
string category = 4;
}
message Entry {
// unique id of the entry
string id = 1;
// the rss feed where it came from
string feed = 2;
// rss feed url of the entry
string link = 3;
// title of the entry
string title = 4;
// article summary
string summary = 5;
// article content
string content = 6;
// data of the entry
string date = 7;
}
// Add a new RSS feed with a name, url, and category
message AddRequest {
// rss feed name
// eg. a16z
string name = 1;
// rss feed url
// eg. http://a16z.com/feed/
string url = 2;
// category to add e.g news
string category = 3;
}
message AddResponse {
}
// Get an RSS feed by name. If no name is given, all feeds are returned. Default limit is 25 entries.
message FeedRequest {
// rss feed name
string name = 1;
// limit entries returned
int64 limit = 2;
// offset entries
int64 offset = 3;
}
message FeedResponse {
repeated Entry entries = 1;
}
// List the saved RSS fields
message ListRequest {}
message ListResponse {
repeated Feed feeds = 1;
}
// Remove an RSS feed by name
message RemoveRequest {
// rss feed name
// eg. a16z
string name = 1;
}
message RemoveResponse {
}