javascript
restful json_Dropwizard:轻松的RESTful JSON HTTP Web服务
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) { }這使我們還有三件事要做:
服務
現在,讓我們將我們的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服务的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎么算平方米 计算平方米的方法
- 下一篇: 在ADF 12.2.1.3中使用基于JS