1.简介
看到了
http://www.iteye.com/topic/1121252,
以前也开发了个简单的开放api系统, 总共用了10个左右的类就可以搞定(使用spring mvc).现在把代码整理下发出.
2. 我们最重要的要求是:
简单开发,简单使用, Service要写的干干净净,让开发API的coder在开发一个API的时候不用学习任何额外的东西, 而是在写一个普通的企业应用里面的Service(or Manager)代码, 下面就是开发一个API的步骤
1)定义API接口
package ws.service;
import ws.annotation.HttpWebService;
import ws.annotation.Path;
import ws.service.impl.Hello;
@HttpWebService
public interface HelloService {
@Path(value = "/heloWorld", paramNames = "name")
Hello helloWorld2(String name);
@Path(value = "/test")
void test();
@Path(value = "/exception")
void exception();
}
2.API实现
package ws.service.impl;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import ws.service.HelloService;
public class HelloServiceImpl implements HelloService {
private static Log log = LogFactory.getLog(HelloServiceImpl.class);
public HelloServiceImpl() {
log.debug("Hello service init!!!");
}
@Override
public Hello helloWorld2(String name) {
return new Hello(name);
}
@Override
public void test() {
log.debug("test");
}
@Override
public void exception() {
if(1==1) {
throw new RuntimeException("error");
}
}
}
3.Spring配置
<bean id="hello" class="ws.service.impl.HelloServiceImpl"/>
这样我们就已经定义了3个API了.分别是 /heloWorld ,/test ,/exception
下面看调用, 直接使用浏览器,
完整代码已经放在
https://github.com/yangjk/http-web-service
上面只是一个简单示例, 保证API的访问安全性代码问题稍后添加,
是实现方式添加interceptor.
1.授权校验
2.hmac校验(对称、非对称)
3.防重放攻击
4.超时控制
5.审计
实现方式参照
http://www.thebuzzmedia.com/designing-a-secure-rest-api-without-oauth-authentication/
未完待续.
- 大小: 22.4 KB
- 大小: 18.3 KB
- 大小: 133.6 KB
分享到:
相关推荐
主流转场动画,无侵入,API简单易用。
主要介绍了Java非侵入式API接口文档工具apigcc用法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
一个非侵入的api编译、收集、Rest文档生成工具。工具通过分析代码和注释,获取文档信息,生成RestDoc文档
无任何侵入,一键自动生成接口文档,前后端分离开发者的福音
微服务开发服务注册与发现技术选型, 0侵入方式,Docker 应用
AOP实现无侵入提高开发效率工具
2-3、使用探针技术实现无侵入式的监控和链路追踪-韩天峰@学而思
BAAlertController 用分类封装系统的 UIAlertController,代码无侵入,简洁高效,一个block 搞定系统alert 和 actionSheet
HXAPIGate基于Netty+Shiro开发的一款高性能API网关,对基于REST服务的细粒度API资源的权限管理平台,支持http,dubbo等多协议微服务接口代理。目前多数授权管理平台都只单单对api路径资源本身授权,而不能做到更细...
一个能让你了解所有函数调用顺序的Android库(无需侵入式代码)
一个无侵入的 iOS crash 防护框架
1,API只有两个方法,易调用2,面向切面编程,无侵入,不需要在VC中设置代理3,易扩展,只需要重建转场对象即可 2,HH过渡不足 1,不够灵活,对于同一个一个转场对象无法设置不同的转场时间2,如果需要传参,需要...
Apigcc是一个非侵入性的RestDoc文档生成工具。工具通过分析代码和注释,获取文档信息,生成RestDoc文档。 有这样一段代码 /** * 欢迎使用Apigcc * @index 1 */ @RestController public class HelloController { ...
NNNavigationBar无侵入平滑过渡
只需要传一个数组即可完成多步骤用户引导,无侵入式编程,不破坏封装性。 github地址为https://github.com/Soulghost/SGUserGuide,欢迎Star!
此外,Spring是非侵入式的:典型地,Spring应用中的对象不依赖于Spring的特定类。 ◆控制反转——Spring通过一种称作控制反转(IoC)的技术促进了松耦合。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递...
在岩浆侵入对煤层结构、煤厚、煤变质程度的影响分析基础上,采用煤焦比指标定量分析了岩浆侵入主采煤层影响程度,根据煤焦比值大小将各主采煤层划分为4个不同影响区。分析结果表明井田4层主采煤层Ⅰ级影响区主要分布于...
Phalcon Debugbar一个无侵入的Phalcon Framework应用调试/分析工具条
使用此插件后我们可以通过 ASM 无侵入实现如下逻辑(以便在 release 版本中直接 disable): fun beforeInjected() { //logic } fun afterInjected() { val start = System.currentTimeMillis() //logic val ...
NBF(New-Retail Business Framework)是一个新零售服务开放框架,提供标准化业务定义、快捷服务开发和生态开放的能力,旨在为生态伙伴提供一整套完整的新零售 PaaS 和 SaaS 的解决方案。本次演讲将介绍 NBF 中的...