ApiDoc - marmot-cn/marmot-framework GitHub Wiki

接口文档

概述

接口文档主要提供接口名称、接口说明、路由、请求参数、响应参数等信息,方便人员查看和维护。

文档内容

  • 接口名称
  • 接口说明
  • 请求参数
  • 响应参数
  • 错误码

参数说明

  • 字段
  • 说明
  • 类型
  • 是否必填
  • 示例

错误码说明

见《错误规范》文件

示例

# 用户接口示例

---

* [参考文档](#参考文档)
	* [项目字典](#项目字典)
	* [控件规范](#控件规范)
	* [错误规范](#错误规范)
	* [接口错误返回说明](#接口错误返回说明)
* [参数说明](#参数说明)
* [接口示例](#接口示例)
	* [获取单条数据](#获取单条数据)
	* [获取多条数据](#获取多条数据)
	* [根据检索条件查询数据](#根据检索条件查询数据)
	* [注册](#注册)
	* [登录](#登录)
	* [忘记密码](#忘记密码)
	* [修改密码](#修改密码)
	* [手机号换绑](#手机号换绑)
	* [启用](#启用)
	* [禁用](#禁用)
	* [接口返回示例](#接口返回示例)
		* [单条数据接口返回示例](#单条数据接口返回示例)
		* [多条数据接口返回示例](#多条数据接口返回示例)

## <a name="参考文档">参考文档</a>

* <a name="项目字典">项目字典</a>
	* [人通用项目字典](人通用项目字典.md "人通用项目字典")
	* [用户项目字典](用户项目字典.md "用户项目字典")
* <a name="控件规范">控件规范</a>
	* [人通用控件规范](人通用控件规范.md "人通用控件规范")
	* [用户控件规范](用户控件规范.md "用户控件规范")
* <a name="错误规范">错误规范</a>
	* [人通用错误规范](人通用错误规范.md "人通用错误规范")
	* [用户错误规范](用户错误规范.md "用户错误规范")
* <a name="接口错误返回说明">接口错误返回说明</a>
	* [接口错误返回说明](接口错误返回说明.md "接口错误返回说明")

## <a name="参数说明">参数说明</a>

<table>
  <tr>
    <th><b>字段</b></th>
    <th><b>说明</b></th>
    <th><b>类型</b></th>
    <th><b>是否必填</b></th>
    <th><b>示例</b></th>
  </tr> 
  <tr>
    <td>cellphone</td>
    <td>手机号</td>
    <td>string</td>
    <td>是</td>
    <td>18800000000</td>
  </tr>
  <tr>
    <td>password</td>
    <td>密码</td>
    <td>string</td>
    <td>是</td>
    <td>Admin123</td>
  </tr>
  <tr>
    <td>oldPassword</td>
    <td>旧密码</td>
    <td>string</td>
    <td>是</td>
    <td>Admin123</td>
  </tr>
  <tr>
    <td>realName</td>
    <td>真实姓名</td>
    <td>string</td>
    <td>是</td>
    <td>张昊</td>
  </tr>
  <tr>
    <td>passport</td>
    <td>登录凭证。手机号或用户名</td>
    <td>string</td>
    <td>是</td>
    <td>18800000000</td>
  </tr>
  <tr>
    <td>avatar</td>
    <td>头像</td>
    <td>array</td>
    <td>否</td>
    <td>array("name" => "图片名称", "identify" => "图片标识")</td>
  </tr>
  <tr>
    <td>userName</td>
    <td>用户名。默认等于手机号</td>
    <td>string</td>
    <td></td>
    <td>18800000000</td>
  </tr>
  <tr>
    <td>authenticatingState</td>
    <td>认证状态。未认证:0,已认证:2</td>
    <td>int</td>
    <td></td>
    <td>0</td>
  </tr>
  <tr>
    <td>status</td>
    <td>状态。启用:0,禁用:-2</td>
    <td>int</td>
    <td></td>
    <td>0</td>
  </tr>
</table>

## <a name="接口示例">接口示例</a>

### 获取数据支持include、fields请求参数

	1、include请求参数
	2、fields[TYPE]请求参数
	    2.1 fields[members]
	3、page请求参数
	    3.1 page[number]=1 | 当前页
	    3.2 page[size]=20 | 获取每页的数量

示例

	$response = $client->request('GET', 'members/1?fields[members]=cellphone,realName',['headers'=>['Content-' => 'application/vnd.api+json']]);

### <a name="获取单条数据">获取单条数据示例</a>

路由

	通过GET传参
	/members/{id:\d+}

示例

	$response = $client->request('GET', 'members/1',['headers'=>['Content-' => 'application/vnd.api+json']]);

### <a name="获取多条数据">获取多条数据示例</a>

路由

	通过GET传参
	/members/{ids:\d+,[\d,]+}

示例

	$response = $client->request('GET', 'members/1,2,3',['headers'=>['Content-' => 'application/vnd.api+json']]);

### <a name="根据检索条件查询数据">根据检索条件查询数据示例</a>

路由

	通过GET传参
	/members

	1、检索条件
	    1.1 filter[cellphone] | 根据手机号搜索 
	    1.2 filter[authenticatingState] | 根据认证状态搜索 | 未认证 0 | 已认证 2
	    1.3 filter[status] | 根据状态搜索 | 启用 0 | 禁用 -2
	2、排序
	    2.1 sort=-id | -id 根据id倒序 | id 根据id正序
	    2.2 sort=-updateTime | -updateTime 根据更新时间倒序 | updateTime 根据更新时间正序

示例

	$response = $client->request('GET', 'members?filter[authenticatingState]=2&sort=-id&page[number]=1&page[size]=20',['headers'=>['Content-' => 'application/vnd.api+json']]);

### <a name="注册">注册示例</a>

路由

	通过POST传参
	/members

示例

	$data = array("data"=>array(
		        "type"=>"members",
                        "attributes"=>array( 
                            "cellphone"=>"18800000000",  
                            "password"=>"123456"
                        )
                    )
     		);
	$response = $client->request(
	                'POST',
	                'members',
	                [
		                'headers'=>['Content-Type' => 'application/vnd.api+json'],
		                'json' => $data
	                ]
	            );

### <a name="登录">登录示例</a>

路由

	通过POST传参
	/members/signIn

示例

	$data = array("data"=>array(
	                "type"=>"members",
                        "attributes"=>array(
                            "passport"=>"18800000000",   
                            "password"=>"123456"
                        )
                    )
     		);
	$response = $client->request(
	                'POST',
	                'members/signIn',
	                [
		                'headers'=>['Content-Type' => 'application/vnd.api+json'],
		                'json' => $data
	                ]
	            );

### <a name="忘记密码">忘记密码示例</a>

路由

	通过PATCH传参
	/members/resetPassword

示例

	$data = array("data"=>array(
			"type"=>"members",
                        "attributes"=>array( 
                            "cellphone"=>"18800000000",   
                            "password"=>"123456"
                       	)
                    )
     		);
	$response = $client->request(
	                'PATCH',
	                'members/resetPassword',
	                [
		                'headers'=>['Content-Type' => 'application/vnd.api+json'],
		                'json' => $data
	                ]
	            );

### <a name="修改密码">修改密码示例</a>

路由

	通过PATCH传参
	/members/{id:\d+}/updatePassword

示例

	$data = array("data"=>array(
			"type"=>"members",
                        "attributes"=>array( 
                            "oldPassword"=>"123456",   
                            "password"=>"12345678"
                        )
                    )
     		);
	$response = $client->request(
	                'PATCH',
	                'members/1/updatePassword',
	                [
		                'headers'=>['Content-Type' => 'application/vnd.api+json'],
		                'json' => $data
	                ]
	            );

### <a name="手机号换绑">手机号换绑示例</a>

路由

	通过PATCH传参
	/members/{id:\d+}/updateCellphone

示例

	$data = array("data"=>array(
			"type"=>"members",
                        "attributes"=>array( 
                            "cellphone"=>"1880000001"
                        )
                    )
     		);
	$response = $client->request(
	                'PATCH',
	                'members/1/updateCellphone',
	                [
		                'headers'=>['Content-Type' => 'application/vnd.api+json'],
		                'json' => $data
	                ]
	            );

### <a name="启用">启用示例</a>

路由

	通过PATCH传参
	/members/{id:\d+}/enable

示例

	$response = $client->request('PATCH', 'members/1/enable',['headers'=>['Content-' => 'application/vnd.api+json']]);

### <a name="禁用">禁用示例</a>

路由

	通过PATCH传参
	/members/{id:\d+}/disable

示例

	$response = $client->request('PATCH', 'members/1/disable',['headers'=>['Content-' => 'application/vnd.api+json']]);

### <a name="接口返回示例">接口返回示例</a>

#### <a name="单条数据接口返回示例">单条数据接口返回示例</a>

	{
	    "meta": [],
	    "data": {
	        "type": "members",
	        "id": "1",
	        "attributes": {
	            "cellphone": "1880000001",
	            "userName": "1880000001",
	            "realName": "张良",
                    "avatar": {
                        "name": "name",
                        "identify": "identify"
	            },
	            "authenticatingState": 2,
	            "status": 0
	        },
	        "links": {
	            "self": "127.0.0.1:8081\/members\/1"
	        }
	    }
	}

#### <a name="多条数据接口返回示例">多条数据接口返回示例</a>

	{
	    "meta": {
	        "count": 3,
	        "links": {
	            "first": 1,
	            "last": 2,
	            "prev": null,
	            "next": 2
	        }
	    },
	    "links": {
	        "first": "127.0.0.1:8081\/members?sort=-id&page[number]=1&page[size]=2",
	        "last": "127.0.0.1:8081\/members?sort=-id&page[number]=2&page[size]=2",
	        "prev": null,
	        "next": "127.0.0.1:8081\/members?sort=-id&page[number]=2&page[size]=2"
	    },
	    "data": [
	        {
	            "type": "members",
	            "id": "3",
	            "attributes": {
	                "cellphone": "1880000003",
		            "userName": "1880000003",
		            "realName": "吴敏",
	                "avatar": {
	                    "name": "name",
	                    "identify": "identify"
		        },
		        "authenticatingState": 2,
		        "status": 0     
	            },
	            "links": {
	                "self": "127.0.0.1:8081\/members\/3"
	            }
	        },
	        {
	            "type": "members",
	            "id": "2",
	            "attributes": {
	                "cellphone": "1880000002",
		        "userName": "1880000002",
		        "realName": "李磊",
	                "avatar": {
	                    "name": "name",
	                    "identify": "identify"
		        },
		        "authenticatingState": 2,
		        "status": 0       
	            },
	            "links": {
	                "self": "127.0.0.1:8081\/members\/2"
	            }
	        }
	    ]
	}
⚠️ **GitHub.com Fallback** ⚠️