Flea RESTful接口服务端接入

本篇介绍 flea-jersey模块下的flea-jersey-server 子模块,该模块封装了通用的POST、PUT、DELETE 和 GET资源。

1. 服务端依赖

项目地址可至GitHub 查看 flea-jersey-server

 <!-- FLEA JERSEY SERVER--><dependency><groupId>com.huazie.fleaframework</groupId><artifactId>flea-jersey-server</artifactId><version>2.0.0</version></dependency>

2. 服务端接入步骤

  1. 服务端自定义资源入口类,继承 FleaResourceConfig;
  2. 服务端自定义资源,并配置到资源表中;
  3. 服务端自定义资源服务,并配置到资源服务表中;
  4. 服务端完成资源服务的业务逻辑开发,配置国际码和错误码映射关系。

3. 具体接入讲解

3.1 资源入口类定义

/*** <p> FleaFS 资源入口 </p>** @author huazie* @version 1.0.0* @since 1.0.0*/
@ApplicationPath("/fleafs/*")
public class FleaFSResourceConfig extends FleaResourceConfig {/*** <p> 无参构造方法 </p>** @since 1.0.0*/public FleaFSResourceConfig() {super();// 这里加入自定义的配置信息}
}

3.2 资源定义

REST服务的核心是对外公布的资源API。如下 DownloadResource 资源类由注解Path修饰,其资源路径为 download。

/*** <p> 下载资源类 </p>** @author huazie* @version 1.0.0* @since 1.0.0*/
@Path("download")
public class DownloadResource extends Resource implements JerseyGetResource, JerseyPostResource {@Overridepublic FleaJerseyResponse doGetResource(String requestData) {return doResource(requestData);}@Overridepublic FleaJerseyResponse doPostResource(FleaJerseyRequest request) {return doResource(request);}
}

有了资源类,下面就需要配置资源;资源配置在 flea_jersey_resource 表中。新增如下配置:

应用服务启动后,FleaFSResourceConfig 会扫描所有定义的资源包,即将如上resource_packages 字段定义的包都扫描一遍,这样这些包内所有资源类所提供的资源路径将被映射到内存中。详细内容可参考 FleaResourceConfig。

3.3 资源服务定义

3.3.1 资源服务接口
public interface IFleaDownloadSV {/*** <p> 下载授权 </p>** @param input 下载授权业务入参* @return 下载授权业务出参* @throws Exception* @since 1.0.0*/OutputDownloadAuthInfo downloadAuth(InputDownloadAuthInfo input) throws Exception;
}
3.3.2 资源服务实现类
/*** <p> Flea下载服务实现类 </p>** @author huazie* @version 1.0.0* @since 1.0.0*/
@Service
public class FleaDownloadSVImpl implements IFleaDownloadSV {@Overridepublic OutputDownloadAuthInfo downloadAuth(InputDownloadAuthInfo input) throws Exception {return null;}
}
3.3.3 资源服务配置

资源服务配置在 flea_jersey_res_service 表中。

字段名 中文描述
service_code 服务编码
resource_code 资源编码
service_interfaces 资源服务接口类
service_method 资源服务方法
service_input 资源服务入参
service_output 资源服务出参
3.3.4 资源服务调用

上述资源服务调用逻辑, 可参考 服务调用过滤器 InvokeServiceFilter。

3.4 资源服务业务逻辑开发

 private static final Logger LOGGER = LoggerFactory.getLogger(FleaDownloadSVImpl.class);@Overridepublic OutputDownloadAuthInfo downloadAuth(InputDownloadAuthInfo input) throws Exception {if (LOGGER.isDebugEnabled()) {LOGGER.debug("FleaDownloadSVImpl##downloadAuth(InputDownloadAuthInfo) Start");}String fileId = input.getFileId();if (StringUtils.isBlank(fileId)) {// 入参【{0}】不能为空throw new ServiceException("ERROR-SERVICE0000000001", "fileId");}OutputDownloadAuthInfo output = new OutputDownloadAuthInfo();// 演示直接塞了一个随机数output.setToken(RandomCode.toUUID());if (LOGGER.isDebugEnabled()) {LOGGER.debug("FleaDownloadSVImpl##downloadAuth(InputDownloadAuthInfo) End");}return output;}

代码中出现 ERROR-SERVICE0000000001 的异常,需要配置如下国际码和错误码的映射关系: (国际码和错误码映射配置表 flea_jersey_i18n_error_mapping

flea-jersey使用之Flea RESTful接口服务端接入相关推荐

  1. SpringBoot——实现WebService接口服务端以及客户端开发

    文章目录 一.服务端代码开发 1.pom依赖 2.接口类 3.接口实现类 4.webservice配置文件 2.客户端开发 (1)pom依赖 (2)封装客户端方法clientUtil (3)调用接口类 ...

  2. php中接口验证失败,支付宝手机接口,服务端PHP验证失败,求助

    本帖最后由 js14654952 于 2013-01-16 17:12:11 编辑 最近做支付宝手机接口郁闷死了 求大神们帮忙~! 问题1:手机端安卓自然是JAVA,而服务端是PHP,在做支付宝异步验 ...

  3. 环信PHP服务端demo下载,环信(easemob) v3 接口服务端集成

    Laravel-easemob laravel-easemob 将环信 v3.0 服务端的操作进行了封装, 查看环信官方文档 Install composer 安装 composer require ...

  4. 爱贝云计费服务端接入

    本文主要描述爱贝云计费平台服务端为商户提供的API接口,用于指导商户接入并使用爱贝计费平台的相关能力. API接口列表简介 登录令牌认证:商户使用计费平台账号作为用户的应用登录账号时,应用客户端调用计 ...

  5. 极光推送后台php接口,极光推送Jpush(v2)接口 服务端PHP版本的REST API推送类

    在许多的手机App开发中推送是一个必须的应用.高大上的企业都会自己投入成本搭建自己的推送服务器,而小微企业则会选择一些服务商,使用他们的服务,减轻自己的运营和维护的成本.Jpush(极光推送)是目前比 ...

  6. 应用宝SDK YSDK查询余额接口服务端

    应用宝对应文档:https://wiki.open.qq.com/index.php?title=%E7%B1%B3%E5%A4%A7%E5%B8%88%E6%9C%8D%E5%8A%A1%E7%AB ...

  7. 基于SDK的支付接口服务端——支付宝,微信

    资源下载: 微信sdk:http://download.csdn.net/download/qq_29423883/9958549 支付宝sdk:http://download.csdn.net/do ...

  8. android新浪登录接口,新浪游戏AndroidSDK接入文档—服务端.md

    # SNG联运游戏平台接口文档ForCP(服务端) ## 1.用户接口 ### 1.1.用户信息校验接口(服务端) http://m.game.weibo.cn/api/sdk/user/check. ...

  9. 基于Axis服务端的webservice客户端实现

    之前开发webservice客户端的时候遇到一个使用Axis2开发接口的厂家,查资料把Axis1和Axis2客户端的开发方式总结如下: 基于Axis1服务端的客户端实现: /*** 使用Axis Ca ...

  10. 联系微信ID服务器失败,微信小程序-新用户获取微信手机号登录服务端获取不到unionid情况...

    需求:微信小程序进行获取手机号登录时,登录失败 授权微信用户信息 授权微信手机号 bindLogin: function(e) { wx.hideLoading(); console.log(e.de ...

最新文章

  1. 算法基础知识科普:8大搜索算法之红黑树(上)
  2. 选择select 标签中指定值的option
  3. Node中的Http模块和Url模块的使用
  4. [Android Studio] Android Studio如何查看branch列表及切换branch(转载)
  5. 计算机应用人才培养策略,新形势下的高校计算机应用人才培养策略
  6. PHP导出Excel环境,php怎么导出excel-使用php导出excel的教程 - 河东软件园
  7. 南京大学计算机科学与技术学费,南京大学计算机科学与技术系招生信息
  8. 各大高校女生节横幅来袭,个个都是段子手
  9. 当字符串为空但不为空时
  10. Oracle12如何重装,Oracle怎么重新安装?
  11. python--gevent协程及协程概念
  12. 携程的 Dubbo 之路
  13. 极验滑动验证码破解分析
  14. HTML5视频放完自动跳转,炫酷html5 网站视频自动跳转代码,零基础秒学
  15. uniapp swiper内嵌video组件的坑
  16. java文件怎么保存_java 文件保存和打开
  17. 在VM虚拟机下安装win7系统
  18. 深度学习(PyTorch)——Transforms的使用方法与技巧
  19. java scp 传文件乱码_转-linux 打开移动硬盘中的文本文件显示为乱码
  20. sparksql java_JAVASparkSQL

热门文章

  1. Java调用微信支付代码
  2. xeon e5-2400 系列处理器能做四路服务器吗?,至强处理器E5-2400系列双路云服务器推出...
  3. 字符串str.format()方法
  4. 优雅计算算式:后缀表达式
  5. 前端自动化测试 之 视觉测试
  6. 兴业java入职考试是考什么_兴业银行考试考什么
  7. HMM隐马尔可夫模型详解
  8. 用html制作空心菱形的代码,javascript打印完整金字塔型_完整菱形_空心菱形_思路算法详解_js源代码...
  9. axios的并发请求和 排队请求
  10. Ruby ERB模板注入检测