XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet
公开
关注 0 Fork 0 Star 0
返回提交历史

XFEstudio/bilibili-API-collect

Update CONTRIBUTING.md

6521e3f
wuziqian211 <65224318+wuziqian211@users.noreply.github.com>
提交于

代码差异

3 个文件 +53 -43
Modified CONTRIBUTING.md +51 -41
@@ -6,23 +6,29 @@
6 6
7 7 [bilibili-API-collect](https://github.com/SocialSisterYi/bilibili-API-collect) 项目(简称 BAC 或 b-a-c)是一个仅用于学习研究、社区开源、公益性质的 [B 站(哔哩哔哩)](https://www.bilibili.com/)API(应用程序接口)文档,使用 [CC-BY-NC 4.0 协议](https://github.com/SocialSisterYi/bilibili-API-collect/blob/master/LICENSE)开源,它将无差别收集整理相关的**主站业务接口**。
8 8
9 该项目使用 [MarkDown](https://zh.wikipedia.org/zh-cn/Markdown) 语法进行文档书写,按照业务类型及功能以**路径**+**文件**形式索引,任何用户都可通过 Pull Request 提供自己分析出的接口地址与使用说明。
9 该项目使用 [MarkDown](https://zh.wikipedia.org/zh-cn/Markdown) 语法进行文档书写,按照业务类型及功能以**路径**+**文件**形式索引,任何用户都可通过 Issue、Pull Request 与 Discussion 提供自己分析出的接口地址与使用说明。
10 10
11 11 本项目收集的接口类型包括但不限于 REST API、gRPC、WebSocket,文档内统一优先使用安全套接字协议,如 `https`、`securityRpc`、`wss`。
12 12
13 ## Issue 与社群讨论
13 ## Issue、Discussion 与社群讨论
14 14
15 对文档内容存在**不理解**之处、以及发现文档内容有所**缺失**或**错误**,可直接提出,强烈建议以发 **Issue** 的形式参与用户反馈,并希望关于本项目的各种交流都是**公开进行**的,因为这样才可以保证关键信息的一致性。
15 对文档内容存在**不理解**之处、以及发现文档内容有所**缺失**或**错误**,可直接提出,强烈建议以提交 **Issue** 的形式添加 / 补充 / 更新文档中的说明,以发起 **Discussion** 的形式提出问题、代码用例、情报分享,并希望关于本项目的各种交流都是**公开进行**的,因为这样才可以保证关键信息的一致性。
16 16
17 由于本项目属于文档型项目,故不设置 Issue 模板,同时允许中英文标题,但提交 Issue 请遵守以下原则:
17 提交 Issue 请遵守以下原则:
18 18
19 1. 标题言简意骇,说明欲提出的问题要点,如 `如何通过 xx 接口获取 yy `、`xx 接口地址已失效`、`关于 xx 字段意义的探讨`、`建议将 xx 加入 yy 分类` 等标题;切勿使用表意含糊不清或索取性的标题,如 `怎么解决风控`、`补充`、`搜索的接口是什么`、`好兄弟有没有投稿的接口` 等标题
20 2. Issue 正文应对问题进行尽可能详细的描述,展开并聚焦有关的信息,例如:“在前端页面某地址 / APP 某界面会访问某 API(标明地址),它的某参数与文档中不符(标明文档地址)”
19 1. 标题需要点明 API 的用处,如 `[新增请求] 新增 xx 接口`、`[更新请求] xx 接口地址已失效`、`[更新请求] xx 接口的参数有变化`,切勿仅填写 `补充`、`修复` 等标题
20 2. 正文请按照 Issue 模板进行填写,标明 API 来源(Web、Android、iOS、TV 等)、API 类型(REST、gRPC、WebSocket 等)、API 地址
21 3. 详情描述需要提供该 API 的使用场景、请求及响应字段等,可附上原始抓包记录;在更新时还需指出原文档中与最新 API 行为不符之处,并附上已知的最新改动。例如:“在前端页面某地址 / APP 某界面访问某 API(标明地址),它的某参数与文档中不符(标明文档地址)”
22
23 发起 Discussion 请遵守以下原则:
24
25 1. 标题言简意骇,说明欲提出的问题要点,如 `如何通过 xx 接口获取 yy`、`关于 xx 字段意义的探讨`、`建议将 xx 加入 yy 分类` 等标题;切勿使用表意含糊不清或索取性的标题,如 `怎么解决风控`、`搜索的接口是什么`、`好兄弟有没有投稿的接口` 等标题
26 2. Discussion 正文应对遇到的问题进行尽可能详细的描述,展开并聚焦有关的信息,例如: “按照文档中某位置的说明进行了某操作,为什么无法获得预期结果”、“请问某 API 的某字段的具体含义是什么”
21 27 3. 提出问题时注意[提问的智慧](https://github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way/blob/main/README-zh_CN.md)并且[别像弱智一样提问](https://github.com/tangx/Stop-Ask-Questions-The-Stupid-Ways)
22 28
23 29 同时,您还可以通过加入社群的方式参与讨论
24 30
25 - QQ 交流群:[邀请链接](https://jq.qq.com/?_wv=1027&k=s1M0LCcu)
31 - QQ 交流群:[邀请链接](https://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=ympvb3LAPT-Ulu3ezhGqbkJ8zXMKImOX&authKey=z1KdkOdKO3wytN43m9K6On9nBtnDL4pAoD6VQHCipFBb9TasNDKuDHCmOE6TF3uc&noverify=0&group_code=191187164)
26 32 - Telegram 交流群:[@bilibili_API_collect_community](https://t.me/bilibili_API_collect_community)
27 33
28 34 ::: tip ✅提示
@@ -37,7 +43,7 @@ Telegram 交流群主要用作 [BAC 项目](https://github.com/SocialSisterYi/bi
37 43
38 44 群内讨论同样需要遵守**公开交流**的原则,以及群内会定期清理不活跃成员。
39 45
40 **QQ 交流群**的加群问题答案可以去 [Owner 的主页](https://github.com/SocialSisterYi) Contact 部分找到,如果您填写“我不知道,从 Github 来的“那么管理员将有理由禁止您进群讨论!
46 **QQ 交流群**的加群问题答案可以去 [Owner 的主页](https://github.com/SocialSisterYi) Contact 部分找到,如果您填写“我不知道,从 Github 来的”那么管理员将有理由禁止您进群讨论!
41 47
42 48 :::
43 49
@@ -51,24 +57,25 @@ Telegram 交流群主要用作 [BAC 项目](https://github.com/SocialSisterYi/bi
51 57
52 58 ### 目录
53 59
54 文档目录以 **Markdown 无序列表**语法写在 [README.md](README.md) 中,使用缩进标识文档的层级,如 `视频` 下存在 `基本信息`、`快照`、`推荐` 等子分类,使用 **Markdown 复选框**语法该标注文档是否编写完成
60 文档目录以 **Markdown 无序列表**语法写在 [README.md](README.md) 中,使用缩进标识文档的层级,如 `视频` 下存在 `基本信息`、`快照`、`视频推荐`、`TAG` 等子分类,使用 **Markdown 复选框**语法该标注文档是否编写完成
55 61
56 62 ```markdown
57 - [x] 视频
63 - [ ] 视频
58 64 - [x] 基本信息
59 65 - [x] 快照
60 - [x] 推荐
66 - [x] 视频推荐
67 - [ ] TAG
61 68 ```
62 69
63 70 ### 路径
64 71
65 路径层级应当与文档目录一致,以文件夹的形式存放在项目中的 `/docs` 路径下,命名统一使用英文,如 `video`、`danmaku`、`comment`
72 路径层级应当与文档目录一致,以文件夹的形式存放在项目中的 `/docs` 路径下,命名统一使用英文小写,如 `video`、`danmaku`、`comment`
66 73
67 二级、三级路径应当存在二级三级目录,以 `README.md` 的形式
74 二级、三级路径应当存在二级三级目录,可选添加 `README.md` 以描述该子目录
68 75
69 76 ### 文件
70 77
71 各个子接口集整理为 md 文件,命名统一使用英文,如 `info.md`、`action.md`、`list.md`
78 各个子接口集整理为 MarkDown(md)文件,命名统一使用英文小写,如 `info.md`、`action.md`、`list.md`
72 79
73 80 文档文件中用于存放相关的接口的说明,如 `video/` 下的 `info.md`,存在 `查询视频基本信息`、`查询视频简介`、`查询视频分P列表` 等内容
74 81
@@ -80,9 +87,9 @@ Telegram 交流群主要用作 [BAC 项目](https://github.com/SocialSisterYi/bi
80 87
81 88 ### 头部
82 89
83 文档首行为**一级标签**格式标题
90 文档首行为**一级标签**格式标题,如 `# 用户基本信息`
84 91
85 **文档头部不再需要手写索引**
92 **文档头部不再需要手写索引**,索引由 Vuepress 自动生成
86 93
87 94 ### 接口说明
88 95
@@ -98,7 +105,7 @@ Telegram 交流群主要用作 [BAC 项目](https://github.com/SocialSisterYi/bi
98 105
99 106 其他使用说明也可写在这里,如 `限制游客访问的视频需要登录`
100 107
101 eg:
108 e.g.:
102 109
103 110 ```markdown
104 111 ## 获取视频详细信息_web端
@@ -114,41 +121,42 @@ eg:
114 121
115 122 **请求参数**应在**接口说明**的下方,应注明参数类型 url 参数或正文参数(正文参数应注明 content-type,如 `application/x-www-form-urlencoded` 或 `multipart/form-data`),使用**加粗**语法
116 123
117 对象的字段及其含义使用**表格**进行整理,表头统一为 `参数名`、`类型`、`内容`、`必要性`、`备注`,类型为 `num`、`str`、`bool`、`nums`、`strs`、`file` 等,必要性为 `必要`、`非必要`、`必要 (可选)` 等,表格内每个字段为一行
124 对象的字段及其含义使用**表格**进行整理,表头统一依次为 `参数名`、`类型`、`内容`、`必要性`、`备注`,类型为 `num`、`str`、`bool`、`nums`、`strs`、`file` 等,必要性为 `必要`、`非必要`、`必要 (可选)` 等,表格内每个字段为一行
118 125
119 eg:
126 e.g.:
120 127
121 128 | 参数名 | 类型 | 内容 | 必要性 | 备注 |
122 129 | ------ | ---- | --------- | ----------- | ----------------- |
123 130 | aid | num | 稿件 avid | 必要 (可选) | avid 与 bvid 任选 |
124 131 | bvid | str | 稿件 bvid | 必要 (可选) | avid 与 bvid 任选 |
125 132
126 **响应正文**应在**请求参数**的下方,接口响应的数据格式应标注,如 `JSON 回复`、`XML 回复`、`Protobuf 回复`,使用**加粗**语法
133 **响应正文**应在**请求参数**的下方,接口响应的数据格式应标注,如 `JSON 回复`、`XML 回复`、`ProtoBuf 回复`,使用**加粗**语法
127 134
128 json object 或 protobuf message 应以对象的**表格**形式书写,表头为 `根对象` 或 `xx 中的 yy 对象`,若对象位于数组中为 `xx 数组中的对象`
135 JSON Object 或 ProtoBuf Message 应以对象的**表格**形式书写,表头为 `根对象` 或 `xx 中的 yy 对象`,若对象位于数组中则为 `xx 数组中的对象`
129 136
130 表头统一为 `字段`、`类型`、`内容`、`备注`,类型为 JSON / Protobuf 的标准类型
137 表头统一依次为 `字段`、`类型`、`内容`、`备注`,类型为 JSON / Protobuf 的标准类型,如 `num`、`str`、`bool`、`obj`、`array`、`null` 等
131 138
132 不明确定义的字段说明在末尾添加问号,如 `播放数?`;定义尚未明确的字段使用问号包于括号中占位,如 `(?)`
139 不明确定义的字段说明在内容的末尾添加问号,如 `播放数?`;定义尚未明确的字段使用 `(?)` 在内容中占位,并在备注中填写 `作用尚不明确`
133 140
134 141 多个对象及数组,使用**遍历树**的顺序进行排列
135 142
136 eg:
143 e.g.:
137 144
138 145 `data` 对象:
139 146
140 | 字段 | 类型 | 内容 | 备注 |
141 | ------ | ---- | ----------- | -------- |
142 | bvid | str | 稿件 bvid | |
143 | aid | num | 稿件 avid | |
144 | videos | num | 稿件分P总数 | 默认为 1 |
145 | tid | num | 分区 tid | |
147 | 字段 | 类型 | 内容 | 备注 |
148 | -------- | ---- | ----------- | ------------ |
149 | bvid | str | 稿件 bvid | |
150 | aid | num | 稿件 avid | |
151 | videos | num | 稿件分P总数 | 默认为 1 |
152 | tid | num | 分区 tid | |
153 | no_cache | bool | (?) | 作用尚不明确 |
146 154
147 json array 或 protobuf repeated 类型使用数组的**表格**形式书写,表头统一为 `项`、`类型`、`内容`、`备注`,无限长度数组表尾需要添加**省略号**
155 Json Array 或 ProtoBuf Repeated 类型使用数组的**表格**形式书写,表头统一依次为 `项`、`类型`、`内容`、`备注`,无限长度数组表尾需要添加**省略号**
148 156
149 157 数组每项内容若与实际数据有关联,`内容` 字段则可标为 `(n+1)P 视频内容` 这样的形式
150 158
151 eg:
159 e.g.:
152 160
153 161 `data` 中的 `pages` 数组:
154 162
@@ -166,9 +174,9 @@ eg:
166 174
167 175 示例命令前后可以适当添加一些文字说明
168 176
169 响应体示例为一段格式化后的 JSON 或 protobuf message,使用**代码块**语法书写,并使用 `<details>` 标签进行折叠
177 响应体示例为一段格式化后的 JSON 或 ProtoBuf Message,使用**代码块**语法书写,并使用 `<details>` 标签进行折叠
170 178
171 eg:
179 e.g.:
172 180
173 181 ````markdown
174 182 **示例:**
@@ -211,22 +219,22 @@ curl -G 'https://api.bilibili.com/x/web-interface/view' \
211 219
212 220 这些枚举值或属性位的用法应附加文字说明
213 221
214 eg:
222 e.g.:
215 223
216 224 | 值 | 含义 | 备注 |
217 225 | ---- | ------------- | ------------------------------------------------------------ |
218 | 6 | 240P 极速 | 仅 MP4 格式支持<br />仅 `platform=html5` 时有效 |
226 | 6 | 240P 极速 | 仅 MP4 格式支持<br />仅 `platform=html5` 时有效 |
219 227 | 16 | 360P 流畅 | |
220 228 | 32 | 480P 清晰 | |
221 229 | 64 | 720P 高清 | WEB 端默认值<br />B 站前端需要登录才能选择,但是直接发送请求可以不登录就拿到 720P 的取流地址<br />**无 720P 时则为 720P60** |
222 | 74 | 720P60 高帧率 | 登录认证 |
223 | 80 | 1080P 高清 | TV 端与 APP 端默认值<br />登录认证 |
230 | 74 | 720P60 高帧率 | 需要登录认证 |
231 | 80 | 1080P 高清 | TV 端与 APP 端默认值<br />需要登录认证 |
224 232
225 233 ## Proto 定义格式
226 234
227 235 proto 文件为 [Protocol Buffers](https://protobuf.dev/) 以及 [gRPC](https://grpc.io/docs/) 的数据结构体定义,多用于客户端的接口,本文档也做相关的收集
228 236
229 存放于项目的 `/grpc_api` 路径下,使用包名进行路径层级的组织,如
237 存放于项目的 `/grpc_api` 路径下,使用包名进行路径层级的组织,如:
230 238
231 239 ```
232 240 /grpc_api/bilibili/main/community/reply/v1/reply.proto
@@ -234,7 +242,7 @@ proto 文件为 [Protocol Buffers](https://protobuf.dev/) 以及 [gRPC](https://
234 242 /grpc_api/bilibili/app/view/v1/view.proto
235 243 ```
236 244
237 proto 文件内使用**单行注释**标注字段或对象的含义,如
245 proto 文件内使用**单行注释**标注字段或对象的含义,如:
238 246
239 247 ```protobuf
240 248 // UP主信息
@@ -250,4 +258,6 @@ message Author {
250 258
251 259 ## 文档提交
252 260
253 TODO
261 使用 Pull Request 将修改后的文档提交到 `master` 分支,标题需写明提交的内容
262
263 (TODO)
Modified docs/message/private_msg.md +1 -1
@@ -501,7 +501,7 @@ curl -G 'https://api.vc.bilibili.com/session_svr/v1/session_svr/new_sessions' \
501 501
502 502 | 字段 | 类型 | 内容 | 备注 |
503 503 | ------- | ---- | -------- | ------------------------------------------------- |
504 | code | num | 返回值 | 0:成功<br />-101:账号未登录<br />-400:请求错误 |
504 | code | num | 返回值 | 0:成功<br />2:非法参数<br />-101:账号未登录<br />-400:请求错误 |
505 505 | msg | str | 错误信息 | 默认为0 |
506 506 | message | str | 错误信息 | 默认为0 |
507 507 | ttl | num | 1 | |
Modified docs/user/relation.md +1 -1
@@ -1682,7 +1682,7 @@ curl -G 'https://api.bilibili.com/x/relation/relations' \
1682 1682
1683 1683 | 项 | 类型 | 内容 | 备注 |
1684 1684 | ---- | ---- | ----------- | ---- |
1685 | 1 | obj | 分组 1 | |
1685 | 0 | obj | 分组 1 | |
1686 1686 | n | obj | 分组(n+1) | |
1687 1687 | …… | num | …… | …… |
1688 1688