Consuming a RESTful Web Service

简介:

  本篇文章将介绍使用Spring来建立RESTful的Web Service。

  我们通过一个例子来说明这篇文章:这个例子将会使用Spring的RestTemplate来从Facebook的提供的API中获取一些信息。然后对这些信息进行一些处理。Facebook的API为:

1
http: //graph.facebook.com/gopivotal

  其实在这个例子中,这个API只是为了掩饰用,并没有特别的含义。这个例子也只是为了说明从一个在线的接口中获取一些数据并进行处理。

  当我们通过浏览器或者curl请求这个路径的时候会返回数据格式为:

  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
{
    "id" "161112704050757" ,
    "about" "At Pivotal, our mission is to enable customers to build a new class of applications, leveraging big and fast data, and do all of this with the power of cloud independence. " ,
    "app_id" "0" ,
    "can_post" false ,
    "category" "Internet/software" ,
    "checkins" : 0,
    "cover" : {
       "cover_id" : 163344023827625,
       "source" "http://sphotos-d.ak.fbcdn.net/hphotos-ak-frc1/s720x720/554668_163344023827625_839302172_n.png" ,
       "offset_y" : 0,
       "offset_x" : 0
    },
    "founded" "2013" ,
    "has_added_app" false ,
    "is_community_page" false ,
    "is_published" true ,
    "likes" : 126,
    "link" "https://www.facebook.com/gopivotal" ,
    "location" : {
       "street" "1900 South Norfolk St." ,
       "city" "San Mateo" ,
       "state" "CA" ,
       "country" "United States" ,
       "zip" "94403" ,
       "latitude" : 37.552261,
       "longitude" : -122.292152
    },
    "name" "Pivotal" ,
    "phone" "650-286-8012" ,
    "talking_about_count" : 15,
    "username" "gopivotal" ,
    "website" "http://www.gopivotal.com" ,
    "were_here_count" : 0
}

  的数据。但是我们只需要其中的一些很少的信息。在这种情况下我们就可以使用Spring的RestTemplate来帮助我们完成这个工作:

  我们通过一个Model来定义我们需要的一些属性:

  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
package  hello;
 
import  org.codehaus.jackson.annotate.JsonIgnoreProperties;
 
@JsonIgnoreProperties (ignoreUnknown= true )
public  class  Page {
 
     private  String name;
     private  String about;
     private  String phone;
     private  String website;
 
     public  String getName() {
         return  name;
     }
 
     public  String getAbout() {
         return  about;
     }
 
     public  String getPhone() {
         return  phone;
     }
 
     public  String getWebsite() {
         return  website;
     }
 
}

  使用@JsonIgnoreProperties注解来忽略一些我们我们不需要的属性。

  然后我们就可以编写下面的方法来完成我们的工作:

  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package  hello;
 
import  org.springframework.web.client.RestTemplate;
 
public  class  Application {
 
     public  static  void  main(String args[]) {
         RestTemplate restTemplate =  new  RestTemplate();
         Page page = restTemplate.getForObject( "http://graph.facebook.com/gopivotal" , Page. class );
         System.out.println( "Name:    "  + page.getName());
         System.out.println( "About:   "  + page.getAbout());
         System.out.println( "Phone:   "  + page.getPhone());
         System.out.println( "Website: "  + page.getWebsite());
     }
 
}

  因为我们在classpath中增加了 Jackson 库,所以spring就可以使用 message converter将JSON对象映射为我们定义的model。

  虽然在这快我们使用的是get请求,但是RestTemplate也支持POST,PUT,DELETE请求。

  最后运行我们的程序,数据结果如下:

  

Name:    Pivotal
About:   At Pivotal, our mission is to enable customers to build a new class of applications, leveraging big and fast data, and do all of this with the power of cloud independence. 
Phone:   650-286-8012
Website: http://www.gopivotal.com

==============================================================================
本文转自被遗忘的博客园博客,原文链接:http://www.cnblogs.com/rollenholt/p/3381718.html,如需转载请自行联系原作者
相关文章
|
15天前
|
Java API 数据库
构建RESTful API已经成为现代Web开发的标准做法之一。Spring Boot框架因其简洁的配置、快速的启动特性及丰富的功能集而备受开发者青睐。
【10月更文挑战第11天】本文介绍如何使用Spring Boot构建在线图书管理系统的RESTful API。通过创建Spring Boot项目,定义`Book`实体类、`BookRepository`接口和`BookService`服务类,最后实现`BookController`控制器来处理HTTP请求,展示了从基础环境搭建到API测试的完整过程。
31 4
|
1天前
【Azure App Service】PowerShell脚本批量添加IP地址到Web App允许访问IP列表中
Web App取消公网访问后,只允许特定IP能访问Web App。需要写一下段PowerShell脚本,批量添加IP到Web App的允许访问IP列表里!
|
1天前
|
JSON API 数据格式
如何使用Python和Flask构建一个简单的RESTful API。Flask是一个轻量级的Web框架
本文介绍了如何使用Python和Flask构建一个简单的RESTful API。Flask是一个轻量级的Web框架,适合小型项目和微服务。文章从环境准备、创建基本Flask应用、定义资源和路由、请求和响应处理、错误处理等方面进行了详细说明,并提供了示例代码。通过这些步骤,读者可以快速上手构建自己的RESTful API。
9 2
|
11天前
|
监控 负载均衡 API
Web、RESTful API 在微服务中有哪些作用?
在微服务架构中,Web 和 RESTful API 扮演着至关重要的角色。它们帮助实现服务之间的通信、数据交换和系统的可扩展性。
33 2
|
2月前
|
安全 API 开发者
Web 开发新风尚!Python RESTful API 设计与实现,让你的接口更懂开发者心!
在当前的Web开发中,Python因能构建高效简洁的RESTful API而备受青睐,大大提升了开发效率和用户体验。本文将介绍RESTful API的基本原则及其在Python中的实现方法。以Flask为例,演示了如何通过不同的HTTP方法(如GET、POST、PUT、DELETE)来创建、读取、更新和删除用户信息。此示例还包括了基本的路由设置及操作,为开发者提供了清晰的API交互指南。
100 6
|
2月前
|
存储 JSON API
实战派教程!Python Web开发中RESTful API的设计哲学与实现技巧,一网打尽!
在数字化时代,Web API成为连接前后端及构建复杂应用的关键。RESTful API因简洁直观而广受欢迎。本文通过实战案例,介绍Python Web开发中的RESTful API设计哲学与技巧,包括使用Flask框架构建一个图书管理系统的API,涵盖资源定义、请求响应设计及实现示例。通过准确使用HTTP状态码、版本控制、错误处理及文档化等技巧,帮助你深入理解RESTful API的设计与实现。希望本文能助力你的API设计之旅。
61 3
|
2月前
|
JSON API 数据库
从零到英雄?一篇文章带你搞定Python Web开发中的RESTful API实现!
在Python的Web开发领域中,RESTful API是核心技能之一。本教程将从零开始,通过实战案例教你如何使用Flask框架搭建RESTful API。首先确保已安装Python和Flask,接着通过创建一个简单的用户管理系统,逐步实现用户信息的增删改查(CRUD)操作。我们将定义路由并处理HTTP请求,最终构建出功能完整的Web服务。无论是初学者还是有经验的开发者,都能从中受益,迈出成为Web开发高手的重要一步。
57 4
|
2月前
|
开发框架 JSON 缓存
震撼发布!Python Web开发框架下的RESTful API设计全攻略,让数据交互更自由!
在数字化浪潮推动下,RESTful API成为Web开发中不可或缺的部分。本文详细介绍了在Python环境下如何设计并实现高效、可扩展的RESTful API,涵盖框架选择、资源定义、HTTP方法应用及响应格式设计等内容,并提供了基于Flask的示例代码。此外,还讨论了版本控制、文档化、安全性和性能优化等最佳实践,帮助开发者实现更流畅的数据交互体验。
65 1
|
2月前
|
JSON API 开发者
惊!Python Web开发新纪元,RESTful API设计竟能如此性感撩人?
在这个Python Web开发的新纪元里,RESTful API的设计已经超越了简单的技术实现,成为了一种追求极致用户体验和开发者友好的艺术表达。通过优雅的URL设计、合理的HTTP状态码使用、清晰的错误处理、灵活的版本控制以及严格的安全性措施,我们能够让RESTful API变得更加“性感撩人”,为Web应用注入新的活力与魅力。
48 3
|
2月前
|
JSON API 数据格式
深度剖析!Python Web 开发中 RESTful API 的每一个细节,你不可不知的秘密!
在 Python Web 开发中,RESTful API 是构建强大应用的关键,基于 Representational State Transfer 架构风格,利用 HTTP 卞性能。通过 GET、POST、PUT 和 DELETE 方法分别实现资源的读取、创建、更新和删除操作。示例代码展示了如何使用 Flask 路由处理这些请求,并强调了状态码的正确使用,如 200 表示成功,404 表示未找到资源等。
47 5