美文网首页
构建一个简单的RESTful Web Service

构建一个简单的RESTful Web Service

作者: 奔跑的荷兰猪 | 来源:发表于2017-08-13 18:48 被阅读0次

    由于公司项目需要最近需要接触移动开发和后台开发,网上搜索了一下后台框架,spring用的居多,平时都是写一些单片机程序和上位机程序,对后台和http了解的甚少,不过spring的文档很不错,写的很通俗易懂,以下基本都是翻译自spring的官方文档。官方链接:https://spring.io/guides/gs/rest-service/#_create_a_resource_controller

    我们将会构建一个web服务 ,它接收http get请求,请求格式如下:http://localhost:8080/greeting 

    然后会返回一个json应答

    {"id":1,"content":"hello, spring"}

    我们可以通过在查询字符串中添加name参数来自定义content内容,比如:

    http://localhost:8080/greeting?name=User

    name参数会替换默认的world值,json应答将会被更改为:

    {"id":1,"content":"hello, User"}

    我使用的开发环境是intelliJ IDEA 2014 jdk1.8

    首先创建java工程,添加maven管理。

    在pom.xml中添加依赖:

    配置好环境后我们开始构造我们的web 服务

    首先我们思考一下我们的服务是如何交互的。服务会处理对/greeting的get请求,这个请求可选的带有一个name参数。这个get请求应该返回一个200 ok的应答头部和一个json的应答体。应答应答类似于下图:

    id字段是一个唯一的标识符,content字段是一段欢迎语。我们创建一个资源类来为greeting资源建模。

    构建一个资源控制器

    spring使用控制器来处理http请求,从而构建RESTful的web服务。通过使用@RestController,下面的GreetingController能够处理对/greeting的get请求,并返回一个Greeting对象的实例。

    控制器的代码很简洁。我们主要理解一下这里面的注解。

    @RequestMapping注解会确保所有对/greeting的get请求都会映射到greeting方法。

    @RequestParam 会把查询字符串中的参数name的值绑定到greeting方法的name参数上。这个查询参数是可选的,默认值是spring。

    传统mvc控制器和RESTful web服务控制器的关键区别在于http 应答体的创建方式。传统mvc使用视图技术在服务端把数据渲染成html,而RESTful web 服务控制器只是简单的返回一个Greeting对象。这个对象的数据将会以json格式写进http应答。

    Greeting对象必须转换成json然后填充到http应答中,这个过程是spring自动处理的,spring使用MappingJackson2HttpMessageConverter自动把对象转换为json。

    使用spring boot 运行我们的服务。

    spring 嵌入了tomcat作为http运行时,我们可以使用spring boot 开启动我们的服务。创建一个Application类

    只需要添加@SpringBootApplication注解,然后在main中调用run方法就可以启动我们的服务了。

    运行我们的服务,终端下会打印启动日志。

    我们可以看到 spring boot 启动了嵌入的tomcat 8.5.16 tomcat监听了8080端口。

    浏览器中输入http://localhost:8080/greeting

    至此,我们完成了一个很简单RESTful web 服务。

    相关文章

      网友评论

          本文标题:构建一个简单的RESTful Web Service

          本文链接:https://www.haomeiwen.com/subject/veeerxtx.html