日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

restful json_Dropwizard:轻松的RESTful JSON HTTP Web服务

發(fā)布時(shí)間:2023/12/3 javascript 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 restful json_Dropwizard:轻松的RESTful JSON HTTP Web服务 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

restful json

尋求快速, 輕松地創(chuàng)建可用于生產(chǎn)環(huán)境的RESTful JSON HTTP Web服務(wù)的Java開發(fā)人員應(yīng)考慮使用Dropwizard框架。 Dropwizard匯集了相互補(bǔ)充的廣受好評(píng)的庫,因此您可以了解重要的內(nèi)容:編寫和交付工作代碼。 對(duì)于那些對(duì)所用庫的詳細(xì)信息感興趣的人,請(qǐng)參閱Dropwizard概述 。 幸運(yùn)的是,Dropwizard不會(huì)使您處理其所有單個(gè)組件。 您將能夠?qū)W⒂谑诸^的工作。 如果您有時(shí)間,請(qǐng)堅(jiān)持一下,讓我們與Dropwizard一起做點(diǎn)事情。

可以在GitHub上獲得本教程的所有代碼。

您如何開始使用Dropwizard?

一個(gè)Maven,Gradle或Ivy依賴項(xiàng)將為您提供制作Dropwizard驅(qū)動(dòng)的Web服務(wù)所需的所有組件。

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

注意 :如果遇到任何您認(rèn)為在這篇簡(jiǎn)短的帖子中沒有充分解釋的內(nèi)容,請(qǐng)參考Dropwizard的出色文檔 。

我們要做什么?

讓我們做一個(gè)Web服務(wù),它返回給定時(shí)區(qū)的當(dāng)前日期和時(shí)間。 如果客戶決定不指定默認(rèn)時(shí)區(qū),我們將使用可配置的默認(rèn)時(shí)區(qū)。

組態(tài)

我們的超級(jí)簡(jiǎn)單的time-service.yml配置文件如下所示。

defaultTimezone: UTC

在后臺(tái),Dropwizard將加載,解析,驗(yàn)證并將該配置轉(zhuǎn)換為對(duì)象。 我們需要做的就是將其指定為類。

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

服務(wù)輸出

假設(shè)我們希望Web服務(wù)的輸出看起來像這樣。

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

相應(yīng)的類很簡(jiǎn)單。

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

資源資源

接下來,我們決定將Web服務(wù)的URL路徑設(shè)置為/time 。 并且我們需要指定資源將返回JSON。 將這些放在一起可以為我們提供這一切。

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

現(xiàn)在,對(duì)于我們的演示W(wǎng)eb服務(wù)而言,唯一有意義的RESTful操作是GET ,因此讓我們?yōu)樗鼊?chuàng)建一個(gè)方法。 使用我們的Web服務(wù)時(shí),客戶端可以提供時(shí)區(qū)作為查詢字符串參數(shù)。

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

這使我們還有三件事要做:

  • 從客戶端處理給定的時(shí)區(qū)
  • 如果沒有給出默認(rèn)時(shí)區(qū)
  • 用時(shí)區(qū)格式化當(dāng)前日期和時(shí)間
  • @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);} }

    服務(wù)

    現(xiàn)在,讓我們將我們的Web服務(wù)的所有部分放在一起,我們將其稱為TimeService 。 在這里,我們將使用TimezoneConfiguration將默認(rèn)時(shí)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) {} }

    鉛筆下來

    而已! 我們只是編寫了一個(gè)基于Dropwizard的Web服務(wù),而沒有引起人們的注意,也沒有成堆的晦澀的XML配置。

    跑步

    運(yùn)行Web服務(wù)就像執(zhí)行命令行Java應(yīng)用程序一樣簡(jiǎn)單-無需擔(dān)心.war文件或servlet容器。

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

    現(xiàn)在,將您的Web瀏覽器指向http://localhost:8080/time?timezone=MST或卷曲一下,玩得開心!

    • 可以在GitHub上獲得本教程的所有代碼。

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

    restful json

    總結(jié)

    以上是生活随笔為你收集整理的restful json_Dropwizard:轻松的RESTful JSON HTTP Web服务的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。