restful json

寻求快速, 轻松地创建可用于生产环境的RESTful JSON HTTP Web服务的Java开发人员应考虑使用Dropwizard框架。 Dropwizard汇集了相互补充的广受好评的库,因此您可以了解重要的内容:编写和交付工作代码。 对于那些对所用库的详细信息感兴趣的人,请参阅Dropwizard概述 。 幸运的是,Dropwizard不会使您处理其所有单个组件。 您将能够专注于手头的工作。 如果您有时间,请坚持一下,让我们与Dropwizard一起做点事情。

可以在GitHub上获得本教程的所有代码。

您如何开始使用Dropwizard?

一个Maven,Gradle或Ivy依赖项将为您提供制作Dropwizard驱动的Web服务所需的所有组件。

<dependency><groupId>com.yammer.dropwizard</groupId><artifactId>dropwizard-core</artifactId><version>0.6.2</version>
</dependency>

注意 :如果遇到任何您认为在这篇简短的帖子中没有充分解释的内容,请参考Dropwizard的出色文档 。

我们要做什么?

让我们做一个Web服务,它返回给定时区的当前日期和时间。 如果客户决定不指定默认时区,我们将使用可配置的默认时区。

组态

我们的超级简单的time-service.yml配置文件如下所示。

defaultTimezone: UTC

在后台,Dropwizard将加载,解析,验证并将该配置转换为对象。 我们需要做的就是将其指定为类。

public class TimezoneConfiguration extends Configuration {@NotEmpty@JsonPropertyprivate String defaultTimezone;public String getDefaultTimezone() { return defaultTimezone; }
}

服务输出

假设我们希望Web服务的输出看起来像这样。

{ "time": "2014-02-04 13:45:02" }

相应的类很简单。

public class Time {private final String time;public Time(String time) {this.time = time;}public String getTime() { return time; }
}

资源资源

接下来,我们决定将Web服务的URL路径设置为/time 。 并且我们需要指定资源将返回JSON。 将这些放在一起可以为我们提供这一切。

@Path("/time")
@Produces(MediaType.APPLICATION_JSON)
public class TimeResource {
}

现在,对于我们的演示Web服务而言,唯一有意义的RESTful操作是GET ,因此让我们为它创建一个方法。 使用我们的Web服务时,客户端可以提供时区作为查询字符串参数。

@GET
public Time getTime(@QueryParam("timezone") String timezone) {
}

这使我们还有三件事要做:

  1. 从客户端处理给定的时区
  2. 如果没有给出默认时区
  3. 用时区格式化当前日期和时间
@Path("/time")
@Produces(MediaType.APPLICATION_JSON)
public class TimeResource {private final String defaultTimezone;public TimeResource(String defaultTimezone) {this.defaultTimezone = defaultTimezone;}@GETpublic Time getTime(@QueryParam("timezone") Optional timezone) {DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");TimeZone timeZone = TimeZone.getTimeZone(timezone.or(defaultTimezone));formatter.setTimeZone(timeZone);String formatted = formatter.format(new Date());return new Time(formatted);}
}

服务

现在,让我们将我们的Web服务的所有部分放在一起,我们将其称为TimeService 。 在这里,我们将使用TimezoneConfiguration将默认时TimezoneConfiguration传递给TimeResource

public class TimeService extends Service {public static void main(String[] args) throws Exception {new TimeService().run(args);}@Overridepublic void run(TimezoneConfiguration config, Environment environment) {String defaultTimezone = config.getDefaultTimezone();TimeResource timeResource = new TimeResource(defaultTimezone);environment.addResource(timeResource);}@Overridepublic void initialize(Bootstrap timezoneConfigurationBootstrap) {}
}

铅笔下来

而已! 我们只是编写了一个基于Dropwizard的Web服务,而没有引起人们的注意,也没有成堆的晦涩的XML配置。

跑步

运行Web服务就像执行命令行Java应用程序一样简单-无需担心.war文件或servlet容器。

java -cp libraries/* name.christianson.mike.TimeService server time-service.yml

现在,将您的Web浏览器指向http://localhost:8080/time?timezone=MST或卷曲一下,玩得开心!

  • 可以在GitHub上获得本教程的所有代码。

翻译自: https://www.javacodegeeks.com/2014/04/dropwizard-painless-restful-json-http-web-services.html

restful json

restful json_Dropwizard:轻松的RESTful JSON HTTP Web服务相关推荐

  1. Dropwizard:轻松的RESTful JSON HTTP Web服务

    寻求快速, 轻松地创建可用于生产环境的RESTful JSON HTTP Web服务的Java开发人员应该考虑Dropwizard框架. Dropwizard汇集了相互补充的广受好评的库,因此您可以了 ...

  2. ajax web服务调用无效 参数值,json调用web服务,报错,无参数值!

    前台:ShowDetail("英伦学院派马夹"); function ShowDetail(productId) { // make an ajax call to the web ...

  3. RESTful JSON Web服务最佳实践

    本文讲的是RESTful JSON Web服务最佳实践,[IT168 资讯]Collaxa BPEL产品-后来成为Oracle SOA战略核心的一部分-背后的关键人物之一,Edwin Khodabak ...

  4. Eunomia: 让 ebpf 程序的分发和使用像网页和 web 服务一样自然

    我们的项目地址:https://github.com/yunwei37/Eunomia eBPF 是一项革命性的技术,它能在操作系统内核中运行沙箱程序.被用于安全并有效地扩展内核的能力而无需修改内核代 ...

  5. Spring Restful Web服务示例 - 使用JSON/Jackson和客户端程序

    Spring Restful Web服务示例 - 使用JSON/Jackson和客户端程序 Spring是最广泛使用的Java EE框架之一.我们之前已经看到了如何使用Spring MVC来创建基于J ...

  6. Spring Restful Web服务示例 - 使用JSON,Jackson和客户端程序

    Spring Restful Web服务示例 - 使用JSON,Jackson和客户端程序 Spring是最广泛使用的Java EE框架之一.我们之前已经看到了如何使用Spring MVC来创建基于J ...

  7. 构建 RESTful Web 服务

    from: https://www.ibm.com/developerworks/cn/education/java/j-rest/j-rest.html 开始之前 关于本教程 REST 是一种思维方 ...

  8. 用 Java 技术创建 RESTful Web 服务--转载

    简介 JAX-RS (JSR-311) 是为 Java EE 环境下的 RESTful 服务能力提供的一种规范.它能提供对传统的基于 SOAP 的 Web 服务的一种可行替代. 在本文中,了解 JAX ...

  9. 使用 Jersey 和 Apache Tomcat 构建 RESTful Web 服务

    http://www.ibm.com/developerworks/cn/web/wa-aj-tomcat/ 使用 Jersey 和 Apache Tomcat 构建 RESTful Web 服务 Y ...

最新文章

  1. VC++,掀起你的盖头来
  2. 近期有哪些值得读的推荐系统论文?来看看这份私人阅读清单
  3. Linux系统 iptables 和 firewalld 的那些事
  4. 05CRecordset类
  5. 实验7-3-4 字符串替换 (15 分)
  6. TensorFlow 变量共享: get_variable
  7. MooseFs的使用与操作
  8. 为什么数据库用B+树(3条法则需记牢)
  9. 再别极域(亲测有效)
  10. 代数学笔记1: 域扩张(一)
  11. oracle 更新数据语句,数据更新语句update
  12. 计算机木材染色 配色技术的应用技术,木材怎么染色?木材染色剂电脑配色方法...
  13. 武汉知名 IT 公司大盘点
  14. [小作品]小小梦想初级物理摸拟系统
  15. 左边是地狱右边也是地狱_我担任地狱首席执行官的时间
  16. 华为手表开发:WATCH 3 Pro(8)获取位置服务
  17. 在线PDF转换PPT,不用安装软件
  18. 【踩坑记录】为VMware虚拟机引用主机代理
  19. 2020 的吉光片羽
  20. windows下安装wafw00f

热门文章

  1. Codeforces Round #665 (Div. 2)
  2. 初一模拟赛(4.27)
  3. 软件质量保证划重点期末复习总结
  4. Mybatis生成器插件扩展,定制方法生成,list参数生成
  5. JavaScript学习总结(九)——Javascript面向(基于)对象编程
  6. 你真的了解Java中的三目运算符吗
  7. Java NIO总结
  8. Spring依赖注入和控制反转
  9. mybatis环境搭建步骤(含配置文件代码)
  10. 计算机主机组成实验,计算机组成原理实验-运算器组成实验报告