Skip to content

Commit 72c953e

Browse files
committed
init
1 parent 05d7950 commit 72c953e

File tree

4 files changed

+539
-210
lines changed

4 files changed

+539
-210
lines changed

LICENSE

Lines changed: 2 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,3 @@
1-
MIT License
1+
by-nc-nd 4.0License
22

3-
Copyright (c) 2018 HelloGitHub
4-
5-
Permission is hereby granted, free of charge, to any person obtaining a copy
6-
of this software and associated documentation files (the "Software"), to deal
7-
in the Software without restriction, including without limitation the rights
8-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9-
copies of the Software, and to permit persons to whom the Software is
10-
furnished to do so, subject to the following conditions:
11-
12-
The above copyright notice and this permission notice shall be included in all
13-
copies or substantial portions of the Software.
14-
15-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21-
SOFTWARE.
3+
<a rel="license" href="https://creativecommons.org/licenses/by-nc-nd/4.0/deed.zh"><img alt="知识共享许可协议" style="border-width: 0" src="https://licensebuttons.net/l/by-nc-nd/4.0/88x31.png"></a><br>本作品采用 <a rel="license" href="https://creativecommons.org/licenses/by-nc-nd/4.0/deed.zh">署名-非商业性使用-禁止演绎 4.0 国际</a> 进行许可。

README.md

Lines changed: 17 additions & 190 deletions
Original file line numberDiff line numberDiff line change
@@ -1,198 +1,25 @@
1-
# HG 公开接口文档
2-
## 一、基本
3-
### 1.1 请求约定
4-
**域名:https://hellogithub.com**
1+
# HelloGitHub 协作开发规范
2+
## 一、项目介绍
3+
编程是让流程变得更加简单、方便的途径,以下项目都是为了方便更好的发掘、推荐 GitHub 上优秀的开源项目。
54

6-
- GET 方法,参数只有一个 `q`。所有的参数 json 序列化后,通过 `q` 参数传递,具体参数说明下面的接口说明会说明
7-
- POST 方法,参数全部通过 json 提交。`hearder` key-value 对为:`Content-Type:application/json`
5+
- [官网](https://hellogithub.com)[HelloGitHub 开源项目](https://github.com/521xueweihan/HelloGitHub)
6+
- 前端项目:[taichi](https://github.com/HelloGitHub-Team/taichi),可视化前端项目
7+
- 后端项目:[hellogithub.com](https://github.com/521xueweihan/hellogithub.com) 目前正在基于 fastapi 重构中(完成后开源)
88

9-
例如:
10-
- 获取月刊第 1 期的内容:
11-
```
12-
https://hellogithub.com/api/v1/volume/projects/?q={"id": 1}
13-
```
14-
- 获取 C# 分类的内容:
15-
```
16-
http://hellogithub.com//api/v1/category/projects/?q={"id": 9, "page":1}
17-
```
9+
开源项目协作开发是一件自由且松散的事情,但是项目工程又是一件严谨的事情。所以需要一些规范来让事情有条不紊的进展和推进,所以下面列举了一些一起协作开发之前需要知道的事情和规范。
1810

11+
## 二、规范
12+
1. [接口文档](doc/api.md)
13+
2. [Git 工作流]()
14+
3. [项目进度管理](doc/projects.md)
1915

20-
#### 1.2 响应约定
21-
响应状态通过 HTTP status code 反应,规则如下:
22-
- 200:成功
23-
- 400:参数错误
24-
- 401:未登录
25-
- 403:禁止访问
26-
- 404:未找到
27-
- 500:服务器异常
16+
## 三、加入我们
17+
目前项目整体正处于前后端分离、重构的阵痛期,每个人的时间都很宝贵,请阅读完已知有限信息后。不欢迎需要督促、伸手党,确定要和我们一起做一些让你骄傲和有意义的事情后再联系我。
2818

29-
成功响应模版:
30-
```
31-
{
32-
"message": "OK", # 成功一般为 OK
33-
"payload": [] # 请求返回的数据
34-
}
35-
```
19+
请思考一个问题:你坚持最久的一件事情是什么,坚持了多长时间?
3620

37-
**Tips:** 字段说明会在响应例子中以 `#` 出现
21+
微信:xueweihan(备注:前端 or 后端),然后把你的经历告诉我。
3822

39-
#### 1.3 认证
40-
采用 Basic Auth 方式:
41-
- `username`:随便(可以不写)
42-
- `password`:为 token(用于认证权限)
4323

44-
示例:
45-
```
46-
➜ ~ curl -u 随便:token https://hellogithub.com/api/v1/
47-
{
48-
"message": "HG API-v1 hello world."
49-
}
50-
```
51-
52-
## 二、获取类接口说明
53-
### 2.1 按照期数获取项目
54-
PATH:`/api/v1/volume/projects/`
55-
56-
方法:`GET`
57-
58-
参数:
59-
60-
| 名称 | 必须 | 类型 | 描述 |
61-
| ------- | ----- | ----- | ----- |
62-
| id || int | 某一期的id |
63-
64-
**Tips:** 默认返回最新一期
65-
66-
67-
响应:
68-
```
69-
{
70-
"message": "OK",
71-
"payload": [
72-
{
73-
"category": "其它", # 项目类别
74-
"description": "(英文)这个项目收集了很多 SEO 优化的建议\n", # 描述(Markdown语法)
75-
"sort_desc": "谷歌 Material Design 设计风格控件库", # 简短描述,纯文本
76-
"img_url": "", # 配图地址
77-
"name": "search-engine-optimization", # 项目名称
78-
"update_time": "2018-11-28 13:56:00", # 发布时间
79-
"url": "https://github.com/marcobiedermann/search-engine-optimization", # 项目地址
80-
"volume": "32" # 第几期
81-
},
82-
....
83-
]
84-
}
85-
86-
```
87-
88-
### 2.2 按照分类获取项目
89-
PATH:`/api/v1/category/projects/`
90-
91-
方法:`GET`
92-
93-
参数:
94-
95-
| 名称 | 必须 | 类型 | 描述 |
96-
| ------- | ----- | ----- | ----- |
97-
| id || int | 某一类别的id |
98-
| page || int | 第几页(1为第一页) |
99-
100-
**Tips:** 默认随机返回一个类别的第一页,每页10个项目
101-
102-
响应:
103-
```
104-
{
105-
"current_page": , # 当前页
106-
"has_more": true, # 是否下一页还有数据
107-
"message": "OK",
108-
"payload": [
109-
{
110-
"category": "Python 项目",
111-
"description": "使用该库可以优雅地实现各种需求的重试。示例代码如下",
112-
"sort_desc": "谷歌 Material Design 设计风格控件库", # 简短描述,纯文本
113-
"img_url": "",
114-
"name": "tenacity",
115-
"update_time": "2018-06-27 22:26:19",
116-
"url": "https://github.com/jd/tenacity",
117-
"volume": "27"
118-
},
119-
...
120-
]
121-
}
122-
```
123-
124-
### 2.3 获取所有分类信息
125-
PATH:`/api/v1/category/`
126-
127-
方法:`GET`
128-
129-
参数:无
130-
131-
响应:
132-
```
133-
{
134-
"message": "OK",
135-
"payload": [
136-
{
137-
"id": 11,
138-
"name": "C 项目"
139-
},
140-
{
141-
"id": 9,
142-
"name": "C# 项目"
143-
},
144-
...
145-
]
146-
}
147-
```
148-
149-
### 2.4 获取所有期的信息
150-
PATH:`/api/v1/volume/`
151-
152-
方法:`GET`
153-
154-
参数:无
155-
156-
响应:
157-
```
158-
{
159-
"message": "OK",
160-
"payload": [
161-
{
162-
"id": 34,
163-
"name": "31",
164-
"update_time": "2018-09-28 10:31:25"
165-
},
166-
...
167-
]
168-
}
169-
```
170-
## 三、推荐项目接口
171-
PATH:`/api/v1/project/recommend/`
172-
173-
方法:`POST`
174-
175-
参数:
176-
177-
| 名称 | 必须 | 类型 | 描述 |
178-
| ------- | ----- | ----- | ----- |
179-
| title || string | 标题 |
180-
| description || string | 对该项目的描述 |
181-
| url || string | 推荐项目的地址(最长150)|
182-
| category || string | 推荐项目的类别 |
183-
| langPrimary || string | 推荐项目的主要编程语言 |
184-
| watch || int | 推荐项目的 watch 数量 |
185-
| star || int | 推荐项目的 star 数量 |
186-
| fork || int | 推荐项目的 fork 数量 |
187-
| source || string | 用于标记提交的来源 |
188-
| device || string | 用于标记提交的设备 |
189-
190-
191-
**Tips:** 根据 url 校验是否重复,如果重复记录第一次推荐的内容。就算推荐的项目重复也返回 `200 OK`
192-
193-
响应:
194-
```
195-
{
196-
"message": "OK"
197-
}
198-
```
24+
## 四、声明
25+
<a rel="license" href="https://creativecommons.org/licenses/by-nc-nd/4.0/deed.zh"><img alt="知识共享许可协议" style="border-width: 0" src="https://licensebuttons.net/l/by-nc-nd/4.0/88x31.png"></a><br>本作品采用 <a rel="license" href="https://creativecommons.org/licenses/by-nc-nd/4.0/deed.zh">署名-非商业性使用-禁止演绎 4.0 国际</a> 进行许可。

0 commit comments

Comments
 (0)