该章节内容仅适用于6.3.GA及后续版本
获得本地开发环境,请移步这里。
RESTful服务类是一个普通pojo类,AWS的RESTful支持使用如下3类注解定义服务:
注解类型 | 说明 |
---|---|
AWS RESTful注解 | restful服务类需提供@Controller注解。 注解属性apiName定义本API唯一ID,该id在系统中将作为服务调用地址的一部分, 不允许包含空格等特殊符号; 注解属性type为常量:HandlerType.RESTFUL,含有该标志的服务在app启动时自动注册。 |
JAX-RS注解 | 主持JAX-RS 1.1、2.0、2.1主要功能。例如@Path,javax.ws.rs.Path是JAX-RS的路径注解,用于定义服务地址,更多注解可参考:概述 |
Swagger注解 | 例如 @OpenAPIDefinition ,io.swagger.v3.oas.annotations.OpenAPIDefinition是Swagger的注解,用于描述接口信息,支持OpenAPI Specification V3注解 |
JAX-RS常见注解 | 说明 |
---|---|
@GET | 指示方法使用HTTP GET访问,常用于查询,应做到幂等 |
@POST | 指示方法使用HTTP POST访问,常用于资源的创建 |
@PUT | 指示方法使用HTTP PUT访问,常用于资源的更新 |
@DELETE | 指示方法使用HTTP DELETE访问,常用于资源的删除 |
@PATCH | 指示方法使用HTTP PATCH访问,常用于资源的部分内容更新 |
@HEAD | 指示方法使用HTTP HEAD访问,和GET类型,但没有响应数据 |
@OPTIONS | 指示方法使用HTTP OPTIONS访问,较少使用,获得当前资源支持的操作 |
@Path | 标注资源类或者方法的相对路径 |
@PathParam | 可接收url路径参数 |
@QueryParam | 可接收url中QueryString参数 |
@FormParam | 可接收x-www-form-urlencoded参数 |
@MatrixParam | 可接收url中;分割片段的参数 |
@DefaultValue | 参数不存在时的默认值 |
@Consumes | 输入参数的类型,例如@Consumes(MediaType.APPLICATION_FORM_URLENCODED)接收表单提交类型参数 |
@Produces | 响应结果的类型,可加在类上或者方法上,例如@Produces({MediaType.APPLICATION_JSON})指示返回json格式数据 |
@javax.inject.Singleton | 指示创建单例服务对象 |
示例
//该示例正常发布后,访问地址为:http://localhost:8088/portal/rs/helleapi/hello
// http://localhost:8088/portal 代表AWS PaaS平台的实际访问地址
// rs 为固定串
// helloapi为 @Controller中 apiName属性值
// hello为 @patch值
package com.actionsoft.bpms.server.ws.demo;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import com.actionsoft.bpms.server.bind.annotation.Controller;
import com.actionsoft.bpms.server.bind.annotation.HandlerType;
@Controller(type = HandlerType.RESTFUL, apiName = "helloapi", desc = "这是RESTful API示例")
@Path("/hello")
public class Hello {
@GET
public String sayHello() {
return "hello,world!";
}
}
将编写的程序编译成jar,存放到您自己的应用lib目录下(假设应用名称是com.abc.apps.do,那么路径应该在%AWS-HOME%/apps/install/com.abc.apps.do/lib),如果开发者引用了三方jar资源,也一同存放到该目录下。
正常情况,这些jar资源将被动态加载到AWS PaaS容器,自动完成发布。当处于开发调试环境时,若首次未自动发布,可重启本地的AWS PaaS服务。
注册成功后可以在 连接服务-> 接口文档-> RESTful APIs 中查看。
平台支持HTTP Basic认证,在生产环境下建议使用HTTPS提供服务。
您可以使用Postman或者swagger ui等工具测试服务。
当您发布的RESTful API注解了 swagger3规范语法后,在发布的服务列表中 点击 Swagger UI
可在线使用swagger ui进行验证,有关 Swagger的使用请参见Swagger官网