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编译、收集、Rest文档生成工具”指的是一个软件工具,它能够不改变原有代码结构或逻辑的情况下,对API进行处理。非侵入性意味着这个工具不会对开发者的工作流产生干扰,而是通过某种机制在...
Java非侵入式API接口文档工具apigcc是一款旨在简化开发者文档编写负担的工具,它通过分析代码和注释自动生成RESTful API文档,实现了"代码即文档"的理念。apigcc工具允许开发者专注于编写高质量的代码,同时不必担心...
`builddoc.rar` 提供了一个解决方案,即无任何侵入的一键自动生成接口文档工具,这对于前后端分离的开发者来说无疑是一大福音。 首先,让我们理解"无任何侵入"的含义。在开发过程中,侵入性通常指的是对现有代码或...
"yuwind-HHTransition-341f482"这个压缩包文件可能包含了名为HHTransition的一个Swift库,它专注于提供主流的、无侵入性的转场动画解决方案,其API设计简洁易用,方便开发者快速集成到自己的项目中。 首先,我们来...
服务发现则是指当一个微服务需要调用另一个服务时,它会查询服务注册中心,获取被调用服务的网络位置,并据此发起请求。 在文档中提到了两种流行的服务注册与发现工具:Consul和Eureka。Consul是HashiCorp公司提供...
探针技术是一种无侵入式的监控方法,通过在软件运行时动态插入监控代码,可以实时监控系统状态而不需要重启服务或修改应用程序代码。这种方法的优点是减少对应用程序性能的影响,并且可以快速应用在任何已部署的应用...
【无侵入修改列表方案1】的描述涉及...综上所述,这个无侵入修改列表方案利用了数据库、API代理和前端缓存等技术手段,实现了对商机管理列表的自定义列配置,提升了用户体验,同时也保证了原有系统的稳定性和可维护性。
"swift-一个无侵入的iOScrash防护框架" 提供了一种解决方案,旨在帮助开发者避免应用程序崩溃,提高应用的稳定性和用户体验。这个框架的核心理念是无侵入性,意味着它不会对你的现有代码结构造成大的干扰,而是默默...
总结来说,这个项目提供了一个基于Java doc注释的解决方案,实现了RESTful API的无侵入式测试、文档生成和SDK导出,对于任何涉及到RESTful API开发的团队来说,都是一个极具价值的工具。它体现了代码文档化、自动化...
本项目是一款基于Java标准doc注释的零侵入式HTTP RESTful API在线测试与文档阅览SDK导出框架,源码包含468个文件,涵盖319个Java源文件、35个头文件、31个模块文件、27个属性文件、21个XML文件、15个JavaScript文件...
"集成smart-doc插件零侵入自动生成RESTful格式API文档.zip"是一个压缩包,包含了一套帮助开发者轻松创建RESTful API文档的解决方案。该解决方案基于流行的Java Web框架Spring Boot,它简化了API开发和文档化的过程。...
以标题和描述中的"SuperAop-master"为例,这可能是一个开源项目,它提供了一种无侵入式的AOP实现方式。"无侵入"意味着这种工具不会改变原有业务逻辑的代码结构,开发者只需通过定义特定的注解,就可以实现AOP的功能...
HXAPIGate基于Netty+Shiro开发的一款高性能API网关,对基于REST服务的细粒度API资源的权限管理平台,支持http,dubbo等多协议微服务接口代理。目前多数授权管理平台都只单单对api路径资源本身授权,而不能做到更细...
标题中的“无侵入,系统性能监测程序”指的是这类软件工具不会对运行的系统造成干扰,它能够在不修改或不影响应用程序正常运行的情况下,提供系统性能的实时监控和分析。这样的工具通常采用轻量级的方式,避免增加...
标题中的“Android-一个能让你了解所有函数调用顺序的Android库无需侵入式代码”指的是一种在Android开发中用于追踪和理解函数调用顺序的技术或库。这个库的独特之处在于它允许开发者无须修改应用程序的源代码,即...
`swift-BAAlertController`项目提供了一个解决方案,通过分类(Category)方式封装了UIAlertController,实现了无侵入式的代码设计,让开发者能够以更加简洁高效的方式处理弹框。 首先,我们来理解什么是Category。...
计算机技术、IT咨询、人工智能AI理论介绍,学习参考资料计算机技术、IT咨询、人工智能AI理论介绍,学习参考资料计算机技术、IT咨询、人工智能AI理论介绍,学习参考资料计算机技术、IT咨询、人工智能AI理论介绍,学习...
3. 权限校验模块透明化,集成在网关插件中,对开放服务无侵入性。 4. Token具有时效性,可以被即时撤销,提高了安全性。 然而,OAuth2方案的一个挑战是权限校验模块需要通过RPC调用网关的OAuth2模块,可能导致性能...
使用ByteBuddy,我们可以避免这种侵入性,通过动态代理生成一个新的类,该类包含对原始方法的调用,并在调用前后添加计时逻辑。 3. **创建代理类** 首先,我们需要创建一个`Advice`,这个`Advice`会在方法调用前后...
通过无侵入性的设计,细粒度的控制,以及对Redis和Lua的巧妙利用,这个框架为企业级服务提供了可靠的安全保障,同时也简化了运维工作。对于Linux开发,尤其是那些关注服务性能和稳定性的开发者来说,这是一个值得...