
# 自定义API功能介绍
自定义API页面如[图1]所示。
图1自定义API页面   
![](https://support.huaweicloud.com/devg-astropro/zh-cn_image_0000002193129872.png "点击放大")
选项含义：
- 实例级别：定义API实例的级别，如类型、实例。
- 动作名称：设置API的动作名称。对应到代码中即接口的方法名称。
- 请求方法：HTTP请求方法（也称为操作或动作），用于指定请求的操作类型。
  - get：请求服务器返回指定资源。
  
  - put：请求服务器更新指定资源。
  
  - post：请求服务器新增资源或执行特殊操作。
  
  - delete：请求服务器删除指定资源。
   
- 请求对象：单击"添加请求对象"，可添加请求对象，即API请求的输入参数。如果接口没有入参，此处可以不设置。具体参考[请求对象]。
- 返回对象：接口的返回值，如果接口没有返回值，此处可以不设置。具体参考[返回对象]。
- 路径：单击"输入path"，添加API的路径，格式为变量放到"{}"中，单词用"_"连接，非变量单词用"-"连接。例如：/{业务对象类型名}s/{对象id}/test-action。
  当您没有自定义API路径，且"实例级别"选择"实例"时，生成的API路径上会拼接一个*{业务对象名称}* _id的路径，同时方法上会多生成一个当前业务对象主键的参数，如下所示。
  - 实例级别为"类型"时：/v1/orders/action1。
  
  - 实例级别为"实例"时：/v1/orders/{order_id}/action1。
    

- 描述：接口的作用。
- 接口层、应用层和数据访问层的多选框：对应自定义API的生成位置， 详情可参考[表1]。
   表1不同目录结构下实际影响代码路径说明 
  | 目录结构         | 接口层               | 应用层                   | 数据访问层                                        |
  |:---|:---|:---|:---|
  | DDD          | {package}.api.xxx | {package}.app.xxx     | {package}.infrastructure.repository.base.xxx |
  | Single       | {package}.api.xxx | {package}.service.xxx | {package}.repository.base.xxx                |
  | base/service | {package}.api.xxx | {package}.service.xxx | {package}.repository.base.xxx                |
     
  ![](https://support.huaweicloud.com/devg-astropro/public_sys-resources/note_3.0-zh-cn.png)
  package为创建服务时定义的打包路径。
  
 #### 请求对象
图2配置请求对象   
![](https://support.huaweicloud.com/devg-astropro/zh-cn_image_0000002193293842.png "点击放大")
选项含义：
- 名称：请求参数的名称。
- 参数类型：请求参数的类型，详细描述请参考[表2]。
- 参数位置：请求参数的位置。
  - query：查询字符串参数，位于 URL 的问号（?）之后，以键值对形式出现，多个键值对之间用与号（\&）分隔。
  
  - path：路径参数，嵌入在 URL 路径中的参数，用于标识特定资源。
  
  - header：请求头参数，包含在 HTTP 请求头中的参数，用于传递关于请求的附加信息，如身份验证信息、客户端信息等。
  
  - body：请求体参数，向服务器提交大量数据或复杂结构的数据时使用。
  
  - formdata：文件参数类型时使用。
   

- 必选：控制参数是否必传。
- 描述：参数的描述信息。
   表2请求对象参数说明 
  | 参数类型 | 详细类型        | 对应JAVA类型     | 可用参数位置                                                                                                                                                                                                                                                                                           | 备注                |
  |:---|:---|:---|:---|:---|
  | 简单类型 | STRING      | String       | - query  - path  - header             | -                 |
  | 简单类型 | BOOLEAN     | Boolean      | - query  - path  - header                       | -                 |
  | 简单类型 | INTEGER     | Integer      | - query  - path  - header   | -                 |
  | 简单类型 | LONG        | Long         | - query  - path  - header                 | -                 |
  | 简单类型 | DECIMAL     | BigDecimal   | - query  - path  - header          | -                 |
  | 简单类型 | FLOAT       | Float        | - query  - path  - header           | -                 |
  | 简单类型 | TEXT        | String       | - query  - path  - header               | -                 |
  | 简单类型 | LONG_TEXT   | String       | - query  - path  - header              | -                 |
  | 简单类型 | MEDIUM_TEXT | String       | - query  - path  - header                | -                 |
  | 简单类型 | DATE        | Date         | - query  - path  - header                    | -                 |
  | 简单类型 | DATETIME    | Date         | - query  - path  - header                   | -                 |
  | 简单类型 | BYTE        | byte\[\]     | - query  - path  - header              | -                 |
  | 简单类型 | CURRENCY    | BigDecimal   | - query  - path  - header                 | -                 |
  | 简单类型 | URL         | String       | - query  - path  - header            | -                 |
  | 对象类型 | 业务对象（BO）类型  | 业务对象类型       | body                                                                                                                                                                                                                                                                                             | eg：Order          |
  | 列表类型 | 简单类型列表      | List\<简单类型\> | body                                                                                                                                                                                                                                                                                             | eg：List\<String\> |
  | 列表类型 | 业务对象（BO）类型  | List\<业务对象\> | body                                                                                                                                                                                                                                                                                             | eg：List\<Order\>  |
     
  
 
 #### 返回对象
图3配置返回对象   
![](https://support.huaweicloud.com/devg-astropro/zh-cn_image_0000002228737237.png "点击放大")
选项含义：
- 返回码：接口响应的状态码。
- 参数类型：接口返回值的数据类型，详细描述请看下表。
- 描述：接口返回值的描述。
  表3返回对象参数说明 
  | 参数类型 | 详细类型        | 对应JAVA类型                               | 备注                |
  |:---|:---|:---|:---|
  | 简单类型 | STRING      | String                                 | -                 |
  | 简单类型 | BOOLEAN     | Boolean                                | -                 |
  | 简单类型 | INTEGER     | Integer                                | -                 |
  | 简单类型 | LONG        | Long                                   | -                 |
  | 简单类型 | DECIMAL     | BigDecimal                             | -                 |
  | 简单类型 | FLOAT       | Float                                  | -                 |
  | 简单类型 | TEXT        | String                                 | -                 |
  | 简单类型 | LONG_TEXT   | String                                 | -                 |
  | 简单类型 | MEDIUM_TEXT | String                                 | -                 |
  | 简单类型 | DATE        | Date                                   | -                 |
  | 简单类型 | DATETIME    | Date                                   | -                 |
  | 简单类型 | BYTE        | byte\[\]                               | -                 |
  | 简单类型 | CURRENCY    | BigDecimal                             | -                 |
  | 简单类型 | URL         | String                                 | -                 |
  | 对象类型 | 业务对象（BO）类型  | 业务对象                                   | eg：Order          |
  | 列表类型 | 简单类型列表      | List\<简单类型\>                           | eg：List\<String\> |
  | 列表类型 | 业务对象（BO）类型  | List\<业务对象\>                           | eg：List\<Order\>  |
  | 文件类型 | FILE        | MultipartFile                          | -                 |
  | 分页参数 | 业务对象（BO）类型  | com.github.pagehelper.PageInfo\<业务对象\> | -                 |
     
  
 
