API.md

October 9, 2018 · View on GitHub

API Instructions

以下是一些基本的 API 使用用例及说明,更多精彩内容请 下载 本项目并查看源码。

User / 用户

Dynamically / 动态

Dictionary Query / 字典查询

Crawler Related / 爬虫

Others / 其他

View ✍️ Some basic usages of Vapor (查看一些基础用法)

用户

用户相关接口包括登录、注册、修改密码、退出登录。

目前用户登录设置的 Token 有效期为 60 * 60 * 24 * 30

注册

users/register

请求方式:POST
请求参数
参数必选类型说明
accountstring账号
passwordstring密码

返回字段

返回字段字段类型说明
statusint0 = 请求成功
messagestring描述字段
accessTokenstring注册成功则返回 Token

返回示例

{
    "status": 0,
    "message": "注册成功",
    "data": {
        "accessToken": "6xETNQp3kyKMZvv1SMOBO_f0L_oYIjm4q8zeGtfEOBg"
    }
}

登录

users/login

请求方式:POST
请求参数
参数必选类型说明
accountstring账号
passwordstring密码

返回字段

返回字段字段类型说明
statusint0 = 请求成功
messagestring描述字段
accessTokenstring登录成功则返回 Token

返回示例

{
    "status": 0,
    "message": "登录成功",
    "data": {
        "accessToken": "qgdoPf3v9OqaUwBtGlzX69c6Xz-Jqdsm4X7bu-alF-c"
    }
}

修改密码

users/changePassword

请求方式:POST
请求参数
参数必选类型说明
accountstring账号
passwordstring旧密码
newPasswordstring新密码

返回字段

返回字段字段类型说明
statusint0 = 请求成功
messagestring描述字段

返回示例

{
    "status": 0,
    "message": "修改成功,请重新登录"
}

获取用户信息

users/getUserInfo

请求方式:GET
请求参数
参数必选类型说明
tokenstring用户 Token

返回字段

返回字段字段类型说明
statusint0 = 请求成功
messagestring描述字段
userIDstring用户 ID
phonestring手机号
locationstring所在地
idint表id
ageint年龄
picNamestring头像图片名称
birthdaystring出生日
sexint性别,1男 2女 其他未知
nickNamestring昵称

返回示例

{
    "status": 0,
    "message": "请求成功",
    "data": {
        "userID": "D1D0CEBC-91B5-47D1-B62A-C2AAC0197343",
        "phone": "13333312312",
        "location": "花果山",
        "id": 1,
        "age": 18,
        "picName": "9fe6d4e771ddde55a60166e1c4688b39.jpg",
        "birthday": "10240301",
        "sex": 3,
        "nickName": "成昆"
    }
}

修改用户信息

users/updateInfo

请求方式:POST
请求参数
参数必选类型说明
tokenstring用户 Token
ageInt年龄
sexInt性别,1男 2女 0未知
nickNamestring昵称
phonestring手机号
birthdaystring出生日
locationstring位置
picImageData用户头像

返回字段

返回字段字段类型说明
statusint0 = 请求成功
messagestring描述字段

返回示例

{
    "status": 0,
    "message": "修改成功"
}

退出登录

users/exit

请求方式:POST
请求参数
参数必选类型说明
tokenstring登录/注册时接口返回的 AccessToken

返回字段

返回字段字段类型说明
statusint0 = 请求成功
messagestring描述

返回示例

{
    "status": 0,
    "message": "退出成功"
}

动态

动态相关接口,包括发动态、获取全部动态列表、获取动态图片、获取我发布的动态列表、举报等。

图片名用 随机数+时间戳 以 md5 编码存储在指定目录。

图片大小不能超过 2M 。

发布动态

record/add

请求方式:POST
请求参数
参数必选类型说明
tokenstring用户Token
contentstring动态内容
titlestring动态标题
imageData上传的图片
countystring动态对应的城市

返回字段

返回字段字段类型说明
statusint0 = 请求成功
messagestring描述

返回示例

{
    "status": 0,
    "message": "发布成功"
}
 

获取全部动态列表

record/getRecords

请求方式:GET

接口示例

http://api.jinxiansen.com/record/getRecords?page=0&county=huxian

请求参数
参数必选类型说明
pageint分页索引,起始为 0
countystring动态对应的城市

返回字段

返回字段字段类型说明
statusint0 = 请求成功
messagestring描述

返回示例

{
    "status": 0,
    "data": [
        {
            "county": "huxian",
            "id": 1,
            "imgName": "6fa5bb4b4a2371c6a6bc83573bb4c558.jpg",
            "title": "身穿道袍戴道冠一道士任景区管理局沙窝村党支部书记",
            "time": "2018-06-17 11:26:50",
            "content": "有一位身着道袍、头戴道冠、手持令牌“做法”的沙窝村共产党员朱新财近日在鄠邑区景区管理局涝峪沙窝村任新一届村党支部书记。\n      《中共中央、国务院关于加强宗教工作的决定》指出:“共产党员不得信仰宗教,要教育党员、干部坚定共产主义信念,防止宗教的侵蚀。对笃信宗教丧失党员条件、利用职权助长宗教狂热的要严肃处理。”\n       2016年4月30日,习总书记在全国宗教工作会议上也明确指出:“共产党员要做坚定的马克思主义无神论者,严守党章规定,坚定理想信念,牢记党的宗旨,绝不能在宗教中寻找自己的价值和信念。”\n       朱新财加入道教多年,多次在涝峪山区,以身穿道袍,头戴法帽,手拿令牌“跳端公”,进行迷信活动,无人不知,无人不晓。其骗取钱财一事曾被户县公安局机关处罚过。不知什么原因今年能被鄠邑区景区管理局党委批准为沙窝村任新一届村党支部书记?\n       此事发生后党员、群众向鄠邑区景区管理局党委、纪委反映无果。\n       西安鄠邑区景区管理局党委应该给党员和群众一个公开的答复。\n       消息来源:户县人民网",
            "userID": "310370D2-65FE-4478-B412-4163CB7DFA5A"
        }
    ],
    "message": "请求成功"
}
 

获取动态图片

record/image

请求方式:GET
请求参数
参数必选类型说明
namestring

返回字段

返回字段字段类型说明
返回一张图片

接口示例

http://api.jinxiansen.com/record/image?name=be0bf2d70f6bbe05efbe2e89578ba84b.jpg

获取动态图片(2)

在 URL 后面追加图片名称,见示例

record/image

请求方式:GET
请求参数
参数必选类型说明
图片名称string

返回字段

返回字段字段类型说明
返回一张图片

接口示例

http://api.jinxiansen.com/record/image/be0bf2d70f6bbe05efbe2e89578ba84b.jpg

获取我的动态列表

record/getMyRecords

请求方式:GET

接口示例

http://api.jinxiansen.com/record/getMyRecords?page=0&county=huxian&token=DJ_ssuG_vEpnt4te1ho2fK2PqmhPxaSo5B9SoXxnfn4

请求参数
参数必选类型说明
tokenstring用户 Token
countystring城市
pageint分页索引,由 0 开始

返回字段

返回字段字段类型说明
statusint0 = 请求成功
messagestring描述
countystring城市
contentstring内容
userIDstring用户 ID
titlestring标题
timestring发布时间

返回示例

 {
    "status": 0,
    "message": "请求成功",
    "data": [
        {
            "county": "huxian",
            "content": "And to generate the TOC, open the command palette ( Ctrl + Shift + P ) and select the Markdown TOC:Insert/Update option or use Ctrl + M T",
            "userID": "2F2E4E60-4FDF-41C3-AB3A-409A8396ECC2",
            "title": "Markdown TOC",
            "time": "2018-06-18 22:04:52"
        }
    ]
}

举报

record/report

请求方式:POST
请求参数
参数必选类型说明
tokenstring用户 Token
contentstring举报内容
countystring对应城市
imageData举报上传的图片
contactstring联系信息

返回字段

返回字段字段类型说明
statusint0 = 请求成功
messagestring描述

返回示例

 {
    "status": 0,
    "message": "举报成功"
}

字典

支持汉字、成语、歇后语查询。

查询采用的是模糊匹配,可能会有多个结果。

汉字查询

words/word

请求方式:GET
请求参数
参数必选类型说明
strstring查询的汉字

返回字段

返回字段字段类型说明
statusint0 = 请求成功
messagestring描述
pinyinstring汉字对应的拼音
wordstring查询的汉字
explanationstring释义
strokesstring笔画
radicalsstring偏旁
oldwordstring繁体字
morestring更多解释、拓展

接口示例

http://api.jinxiansen.com/words/word?str=中

返回示例

{
    "status": 0,
    "data": [
        {
            "pinyin": "zhōnɡ",
            "word": "中",
            "explanation": "中 \n\n (指事。甲骨文字形,中象旗杆,上下有旌旗和飘带,旗杆正中竖立。本义中心 ----- 此处省略一大段 ------ ③在某个方面占重要位置的地方政治~心。商贸~心。",
            "strokes": "4",
            "radicals": "丨",
            "oldword": "中",
            "more": "中 zhong 部首 丨 部首笔画 01 总笔画 04  中 ----- 此处省略一大段 ------。\n郑码j/jivv,u4e2d,gbkd6d0\n笔画数4,部首丨,笔顺编号2512"
        }
    ],
    "message": "请求成功"
}
 

词语查询

words/ci

请求方式:GET
请求参数
参数必选类型说明
strstring查询的词语

返回字段

返回字段字段类型说明
statusint0 = 请求成功
messagestring描述
cistring包含的词语
explanationstring释义

接口示例

http://api.jinxiansen.com/words/ci?str=中国

返回示例

{
    "ci": "少年中国说",
    "explanation": "散文篇名。近代梁启超作。文中极力歌颂少年的朝气蓬勃,指出封建统治下的中国是老大帝国”,热切希望出现少年中国”,振奋人民的精神。文章不拘格式,多用比喻,具有强烈的鼓动性。"
}
 

成语查询

words/idiom

请求方式:GET

接口示例

http://api.jinxiansen.com/words/idiom?str=水性

请求参数
参数必选类型说明
strstring查询的成语

返回字段

返回字段字段类型说明
statusint0 = 请求成功
messagestring描述
examplestring举例
pinyinstring拼音
wordstring查询的成语
abbreviationstring拼音缩写
derivationstring来源
explanationstring解释

返回示例

{
    "status": 0,
    "data": [
        {
            "example": "无",
            "pinyin": "shuǐ xìng yáng huā",
            "word": "水性杨花",
            "abbreviation": "sxyh",
            "derivation": "清·曹雪芹《红楼梦》第九十二回大凡女人都是水性杨花。”",
            "explanation": "象流水那样易变,象杨花那样轻飘。比喻妇女在感情上不专一。"
        },
        {
            "example": "无",
            "pinyin": "yáng hu huǐ xìng",
            "word": "杨花水性",
            "abbreviation": "yhhx",
            "derivation": "清·李宝嘉《官场现形记》第四十三回不过瞿耐庵惧内得很,一直不敢接他上任。那爱珠又是堂子里出身,杨花水性。”",
            "explanation": "柳絮飘扬,水性流动,因以杨花水性”比喻轻薄女子等用情不专。"
        },
        {
            "example": "无",
            "pinyin": "yún xīn shuǐ xìng",
            "word": "云心水性",
            "abbreviation": "yxsx",
            "derivation": "明·叶宪祖《鸾鎞记·喜谐》若是云心水性情分寡,怎供出梦蝶寻花。”",
            "explanation": "指女子作风轻浮,爱情不专一。"
        }
    ],
    "message": "请求成功"
}
 

歇后语查询

words/xxidiom

请求方式:GET

接口示例

http://api.jinxiansen.com/words/xxidiom?str=菩萨

请求参数
参数必选类型说明
strstring查询的成语

返回字段

返回字段字段类型说明
statusint0 = 请求成功
messagestring描述
riddlestring前半句
answerstring后半句

返回示例

{
    "status": 0,
    "data": [
        {
            "riddle": "泥菩萨过河",
            "answer": "自身难保"
        }
    ],
    "message": "请求成功"
}
 

发送邮件

邮件发送请自行配置 SMTP 相关参数。

sendEmail

请求方式:POST
请求参数
参数必选类型说明
emailstring接收人邮箱
myNamestring发送人姓名
subjectstring邮件主题
textstring邮件内容

返回字段

返回字段字段类型说明
statusint0 = 请求成功
messagestring描述

返回示例

{
    "status": 0,
    "message": "发送成功"
}
 

爬虫

这里只是简单展示了如何解析URL,你可以在此基础扩展使用,爬取目标URL并解析和创建 SQL Model 保存数据库,然后添加 API 调用,美滋滋。☺️

拉勾网iOS爬取示例

拉勾网爬虫示例,目标地址: https://www.lagou.com/jobs/list_ios?labelWords=&fromSearch=true&suginput=

lagou/start

请求方式:GET

接口示例

请运行项目后开始爬取:http://localhost:8080/lagou/start

查看爬取结果 http://api.jinxiansen.com/lagou/ios
请求参数
参数必选类型说明

返回字段

返回字段字段类型说明
statusint0 = 请求成功
messagestring描述

返回示例

你可以修改项目中的城市和关键字,以爬取自己需要的数据。

{
    "status":0,
    "message":"开始爬取任务:上海 ios"
}

获取iOS爬取结果

lagou/ios

请求方式:GET

接口示例

http://api.jinxiansen.com/lagou/ios

请求参数
参数必选类型说明

返回字段

返回字段字段类型说明
statusint0 = 请求成功
messagestring描述

返回示例

{
    "status":0,
    "message":"请求成功",
    "data":[
        {
            "industryField":"移动互联网,金融",
            "firstType":"开发/测试/运维类",
            "positionAdvantage":"亿级平台,准上市,极客文化,比较",
            "id":1,
            "education":"本科",
            "imState":"today",
            "workYear":"3-5年",
            "secondType":"前端开发/移动开发",
            "appShow":0,
            "address":"上海 - 徐汇区 - 桂平路391号新漕河泾国际商务中心A座5层 ",
            "adWord":0,
            "resumeProcessDay":1,
            "companySize":"500-2000人",
            "salary":"15k-25k",
            "score":0,
            "subwayline":"9号线",
            "district":"徐汇区",
            "tag":"15k-25k /上海 / 经验3-5年 / 本科及以上 / 全职 高级 中级 移动端 iOS Android 09:13 发布于拉勾网",
            "formatCreateTime":"09:13发布",
            "stationname":"东兰路",
            "pcShow":0,
            "resumeProcessRate":100,
            "approve":1,
            "longitude":"121.40391",
            "positionId":4806768,
            "city":"上海",
            "companyId":1738,
            "positionName":"ios开发",
            "publisherId":105490,
            "isSchoolJob":0,
            "companyShortName":"有鱼金融科技",
            "financeStage":"不需要融资",
            "companyLogo":"i/image/M00/61/D3/CgqKkVf8uQeAOqJ2AAArfl5skXY149.png",
            "companyFullName":"上海彩亿信息技术有限公司",
            "lastLogin":1530686988000,
            "createTime":"2018-07-04 09:13:17",
            "jobNature":"全职",
            "deliver":0,
            "linestaion":"9号线_漕河泾开发区;12号线_东兰路;12号线_虹梅路;12号线_虹漕路",
            "jobDesc":"职位描述: 职位描述: 岗位职责: 1、负责IOS移动端的产品开发及维护; 2、独立完成产品需求的整理和软件设计; 3、高效完成开发任务,提交高质量代码; 4、优化移动端产品的质量、性能、用户体验。 任职资格: 1、本科及以上学历,计算机相关专业,具有独立开发能力; 2、掌握Objective-C语言的特性,精通内存管理、多线程、响应式链条、绘图等; 3、熟练使用IOS主流开发工具、开源框架,如Cocoa touch、Xcode、IOS SDK等; 4、熟悉UI组件以及原理,对交互有造诣者优先; 5、了解算法、数据库、底层架构者优先; 6、逻辑思维强,有钻研精神,Github上有贡献优秀代码者优先; 7、乐观开朗,善于团队合作,有强烈的责任心。",
            "latitude":"31.164019"
        }
    ]
}
 

爬虫示例

爬虫示例,目标地址: http://swiftdoc.org

crawler/swiftDoc

请求方式:GET

接口示例

http://api.jinxiansen.com/crawler/swiftDoc

请求参数
参数必选类型说明

返回字段

返回字段字段类型说明
statusint0 = 请求成功
messagestring描述

返回示例

{
    "status":0,
    "message":"解析成功",
    "data":[
        {
            "type":"Types",
            "titles":[
                "AnyBidirectionalCollection",
                "AnyCollection",
                "AnyHashable",
                "Zip2Iterator",
                "Zip2Sequence"
            ]
        }
    ]
}
 

自定义爬虫地址和规则

crawler/query

请求方式:GET

接口示例

http://api.jinxiansen.com/crawler/query?url=http://api.jinxiansen.com&parse=div

请求参数
参数必选类型说明
urlstring目标 URL
parsestring爬取规则标签,例如 title,div,div,li ,更多请参考 https://github.com/scinfu/SwiftSoup

返回字段

返回字段字段类型说明
statusint0 = 请求成功
messagestring描述

返回示例

{
    "status": 0,
    "message": "解析成功",
    "data": [
        {
            "text": "Auto-generated documentation for Swift. Command-click no more.",
            "html": "<p>Auto-generated documentation for <a href=\"https://developer.apple.com/swift/\">Swift</a>. Command-click no more.</p>"
        }
    ]
}
 

网页

这里有几个 Vapor 部署的 H5 页面示例,你可以点击查看效果。

Keyboard Line Color Reboot Loader Login

反馈

如果有任何问题或建议,可以提一个 Issue

或联系我:Jinxiansen