Android服务端API仿真 - SpringBoot5分钟入门

最近在搞Android开发时, 遇到一个问题, 服务端小哥开发速度不给力啊! 一般我们在开发API时, 都是使用本地json来模拟, 但是这跟真实的情况还是有区别的.这篇文章来讲如何解决这个问题: 花5分钟撸个服务端, 让Android端在更接近真实的环境下开发!

花5分钟撸个服务端, 让Android端在更接近真实的环境下开发!

是的你没看错…

以前在搞后端开发的时候, 使用了 SpringMVC + Spring + Hibernate + Oracle + Bootstrap + jQuery + Tomcat 等技术框架. 我们这里不需要这么多. 我们只需要会点SpringMVC的知识就行了.

为什么说只要5分钟呢…很重要的一个原因是SpringBoot撸的是java代码, Android撸的也是, 我们在仿真API的时候, 直接把Android上的实体类复制到SpringBoot项目上就可以了…


我们开始充电5分钟装逼两小时吧.


1 . Intellij IDEA 这个是IDE, 要是懒得下载的话, 直接Android Studio也是可以的…点我下载

直接撸右边黑色的免费下载
Android服务端API仿真 - SpringBoot5分钟入门_第1张图片


2 . Spring Boot 官网
Android服务端API仿真 - SpringBoot5分钟入门_第2张图片
可以直接从这上面撸demo下来, 有分Maven和Gradle两种. 但是访问这个网站速度特别慢, 可以直接下载我的demo来修改下就行了!


3 . 开启Intellij IDEA(IJ) 或者Android Studio(AS). 打开项目, 这里直接开启我的demo来看:
Android服务端API仿真 - SpringBoot5分钟入门_第3张图片

  • 这里的Application里面有个main方法, 整个服务端从这里启动的, 按照普通java的运行方式启动就行了
  • HelloController是我们的控制器(通过地址拦截进入不同的函数)
  • Hello 是我们的实体类, 直接从安卓端撸过来的

这里图片比较小, 可以放大网页查看, 或者下载demo查看!

Android服务端API仿真 - SpringBoot5分钟入门_第4张图片


4 . 对着Application右键run起来, 这样就算成功了
Android服务端API仿真 - SpringBoot5分钟入门_第5张图片


5 . 开启浏览器, 输入地址 http://localhost:8080/hello/hi . 默认端口是8080, /hello 是HelloController拦截的, /hipublic Hello hi() 函数拦截的, 它返回一个对象, 在我们页面上输出变成json

{"title":"这个是hi标题","content":"这个是hi内容"}

注意, Android上设置服务器地址的时候, 输入电脑的局域网地址(windows: ipconfig, osx: ifconfig), 而不是localhost

再输入地址http://localhost:8080/hello/get?content=这个是内容哦哈哈, 得到的是

{"title":"这个是get标题","content":"这个是内容哦哈哈"}

输入地址http://localhost:8080/hello/hello 使用POST方式访问, 得到的是

{"title":"这个是hello标题","content":"这个是hello内容"}

其他的测试方式类似. 对于传输对象上来的数据, SpringBoot可以自动映射成对象. Android端在使用网络框架如Retrofit的时候, 直接使用@Body 就可以了, 参考:

服务端代码

@RequestMapping(value = "/set", method = RequestMethod.POST)
public Hello set(@RequestBody Hello hello) {}

Android请求代码

@POST("/hello/set")
Observable setHello(@Body Hello hello);

基本上, 用到的就是GET/POST 方式,

  • @RequestMapping 地址拦截映射
  • @RequestParam 请求参数, get和post都是写这个
  • @RequestBody 请求对象, 一般都是post上来的
  • RestController 表示当前的控制器是一个结果控制器, 函数返回的是json
  • @Controller 表示是一个页面类型的控制器, 返回字符串表示页面资源的名称, 这里我们用不到
  • @PathVariable RESET风格的路径, 我们不需要使用它….
    比如www.abc.com/news/{newsId}, 对应的函数是

    @RequestMapping("/news/{newsId}")  
    public void get(@PathVariable String newsId)`

最后, Demo 奉上!

http://download.csdn.net/detail/ccslff/9762168

你可能感兴趣的:(Android,Java,SpringBoot)