# api_document **Repository Path**: zxk7516/api_document ## Basic Information - **Project Name**: api_document - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2018-05-05 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ####
rest api documentation
[postman 使用手册](./postman.md) ### API Request 1. URL pattern 假设有一组猫的数据接口 | name | method | url | description | | ------- | ------ | -------- | ---------------------- | | index | get | cat | 访问猫的列表 | | show | get | cat/{id} | 获取某一猫的的详细信息 | | store | post | cat | 添加,保存一条猫的数据 | | update | put | cat/{id} | 更新某条猫的数据 | | destroy | delete | cat/{id} | 删除某条猫的数据 | 2. post 数据格式 | 类型 | Content-Type | 数据示例 | description | | ---------- | --------------------------------- | ------------------------ | ------------ | | urlencoded | application/x-www-form-urlencoded | name=abc&age=23 | 简单数据 | | formdata | multipart/form-data | | 可以上传文件 | | json | application/json | {"name": "abc","age":23} | 复杂数据 | ### 权限和登录 1. 登录 请求示例 ```json {"mobile":"15500000000","password":"111111"} ``` 返回结果(登录成功) > status: 200 ```json { "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC9xaWFuZGFvLm9vXC9hcGlcL2FkbWluXC9sb2dpbiIsImlhdCI6MTUyNTUwNDA3MywiZXhwIjoxNTI5MTA0MDczLCJuYmYiOjE1MjU1MDQwNzMsImp0aSI6ImNMQzdXOUpFeUhMYUNCR1ciLCJzdWIiOjEsInBydiI6ImIyN2JlZTIzYmFmNTQyOWY1YjlhMjE2OTZmZGUwM2MyNzcwNDRlYTUifQ.Zcj-dPU-APsqUJSrEwbalTTI9SqeiJyuKkM2xWETBBg", "token_type": "bearer", "expires_in": 3600000 } ``` | 字段 | 函义 | | ------------ | -------- | | access_token | 访问令牌 | | token_type | 加密方式 | | expires_in | 有效时长 | 返回结果登录失败 > status: 401 ```json {"error": "Unauthorized."} ``` 2. 在请求头部加入令牌 ```javascript // 单个请求 let token_str = '{"access_token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC9xaWFuZGFvLm9vXC9hcGlcL2FkbWluXC9sb2dpbiIsImlhdCI6MTUyNTUwNDA3MywiZXhwIjoxNTI5MTA0MDczLCJuYmYiOjE1MjU1MDQwNzMsImp0aSI6ImNMQzdXOUpFeUhMYUNCR1ciLCJzdWIiOjEsInBydiI6ImIyN2JlZTIzYmFmNTQyOWY1YjlhMjE2OTZmZGUwM2MyNzcwNDRlYTUifQ.Zcj-dPU-APsqUJSrEwbalTTI9SqeiJyuKkM2xWETBBg","token_type": "bearer","expires_in": 3600000}'; let token = JSON.parse(token_str); // jquery 单个请求 $.ajax({ type: 'POST', url: '/request', headers: { Authorization: `${token.bear} ${token.access_token}` }, data: "{}" }); // jquery 全局头 $.ajaxSetup({ headers: { Authorization: `${token.bear} ${token.access_token}` }, }) // axios // fetch let headers = new Headers(); // headers.append('Accept', 'application/json'); headers.append('Authorization', `${token.bear} ${token.access_token}`); let request = new Request(URL, { headers: headers, method:"GET" }); fetch(request).then(function(response) { console.log(response); }); ``` 3. 令牌缺失或失效返回示例 > status 401 ```json {"error": "Unauthorized."} ``` 4. 权限禁止返回(访问禁止访问的资源) > status 403 ```json {"error": "对不起,您没有访问权限"} ``` ### 填充和修改 1. 表单验证 请求示例 ```json { "title": "春天出游", "start_at": "2018-06-06", "end_at": "2018-06-06", "published_at": "2018-05-28 12:00:00", "author_name": "", "image": "/img/picture/1.png", "description": "超长字符串.........." } ``` 返回结果 > status: 422 (Unprocessable Entity) ```json { "author_name": [ "author name 项必填." ], "description": [ "description 最多包含 255 个字符." ] } ``` author_name 出错的字段 [" ......"] , 错误提示 ### 数据获取 1. 带分页的接口 返回示例 ```json { "current_page": 1, "first_page_url": "http://qiandao.oo/api/admin/activity?page=1", "from": 1, "last_page": 1, "last_page_url": "http://qiandao.oo/api/admin/activity?page=1", "next_page_url": null, "path": "http://qiandao.oo/api/admin/activity", "per_page": 15, "prev_page_url": null, "to": 3, "total": 3, "data": [ ... ] } ``` | 字段 | 含义 | | ------------- | -------------------------------------------- | | current_page | 当前页码 | | data | 数据列表(数组[]) | | from | 返回数据中第一条数据在查询中的排序位置 | | to | 返回数据中最后一条的在查询中的排序位置 | | last_page | 最后一页的页码 | | last_page_url | 最后一页的链接 | | next_page_url | 下一页的链接 | | path | 不带页码的请求链接,不带参数返回第一页的数据 | | per_page | 每页条数 | | prev_page_url | 上一页的链接 | | total | 总条数 |