簡單幾步使用Dropwizard實現一個RESTful微服務
Dropwizard是一個輕量實現Java微服務的框架,官方案例可能比較複雜,這裡展示分分鐘簡單幾步實現一個RESTful微服務。
整個應用只有兩個Java檔案和pom.xml,Java檔案分成帶有main方法的應用主檔案和資源如路由等,主應用檔案程式碼如下:
正如你看到,所有需要做的就是在main方法中呼叫run,而其主要是註冊資源。執行Dropwizard透過其jar包:
mvn package && java -jar target/dropwizard-example-1.0-SNAPSHOT.jar server
資源也很簡單,比如下面是GET路由:
測試訪問:
% curl localhost:8080/hello
Hello
只要使用元註解@Path,那麼Dropwizard (Jersey)會做剩餘的事情,如果你要帶引數查詢,元註解在方法引數中:
測試輸出:
% curl 'localhost:8080/query?message=hello'
You passed hello
表單POST引數如下:
測試結果:
% curl -X POST -d 'message=hello' localhost:8080/postparam
You posted hello
對於通常的POST內容,你甚至不需要元註解:
% curl -X POST -d 'hello' localhost:8080/postbody
You posted hello
整個專案原始碼見: Github
整個應用只有兩個Java檔案和pom.xml,Java檔案分成帶有main方法的應用主檔案和資源如路由等,主應用檔案程式碼如下:
public class DropwizardExampleApplication extends Application<Configuration> { public static void main(String[] args) throws Exception { new DropwizardExampleApplication().run(args); } @Override public void run(Configuration configuration, Environment environment) { environment.jersey().register(new Resource()); } } <p class="indent"> |
正如你看到,所有需要做的就是在main方法中呼叫run,而其主要是註冊資源。執行Dropwizard透過其jar包:
mvn package && java -jar target/dropwizard-example-1.0-SNAPSHOT.jar server
資源也很簡單,比如下面是GET路由:
@Path("/") public class Resource { @GET @Path("/hello") public String hello() { return "Hello"; } } <p class="indent"> |
測試訪問:
% curl localhost:8080/hello
Hello
只要使用元註解@Path,那麼Dropwizard (Jersey)會做剩餘的事情,如果你要帶引數查詢,元註解在方法引數中:
@GET @Path("/query") public String query(@QueryParam("message") String message) { return "You passed " + message; } <p class="indent"> |
測試輸出:
% curl 'localhost:8080/query?message=hello'
You passed hello
表單POST引數如下:
@POST @Path("/postparam") public String postParam(@FormParam("message") String message) { return "You posted " + message; } <p class="indent"> |
測試結果:
% curl -X POST -d 'message=hello' localhost:8080/postparam
You posted hello
對於通常的POST內容,你甚至不需要元註解:
@POST @Path("/postbody") public String postBody(String message) { return "You posted " + message; } <p class="indent"> |
% curl -X POST -d 'hello' localhost:8080/postbody
You posted hello
整個專案原始碼見: Github
相關文章
- 實現一個簡單的 RESTful APIRESTAPI
- 微服務簡單實現最終一致性微服務
- 通過Dapr實現一個簡單的基於.net的微服務電商系統(七)——一步一步教你如何擼Dapr之服務限流微服務
- 通過Dapr實現一個簡單的基於.net的微服務電商系統(六)——一步一步教你如何擼Dapr之Actor服務微服務
- 簡單實現微服務架構的實踐分享微服務架構
- 使用 Python 構建一個簡單的 RESTful APIPythonRESTAPI
- 通過Dapr實現一個簡單的基於.net的微服務電商系統(十)——一步一步教你如何擼Dapr之繫結微服務
- 通過Dapr實現一個簡單的基於.net的微服務電商系統(五)——一步一步教你如何擼Dapr之狀態管理微服務
- Golang快速實現一個簡單RPC服務GolangRPC
- 教程|使用Istio實現一個Service Mesh以簡化微服務間的通訊模式微服務模式
- 通過Dapr實現一個簡單的基於.net的微服務電商系統(八)——一步一步教你如何擼Dapr之鏈路追蹤微服務
- 通過Dapr實現一個簡單的基於.net的微服務電商系統(四)——一步一步教你如何擼Dapr之訂閱釋出微服務
- 從0實現一個前端微服務(上)前端微服務
- 通過Dapr實現一個簡單的基於.net的微服務電商系統(九)——一步一步教你如何擼Dapr之OAuth2授權微服務OAuth
- 通過Dapr實現一個簡單的基於.net的微服務電商系統(十一)——一步一步教你如何擼Dapr之自動擴/縮容微服務
- 如何快速搭建一個 “簡單模式” 的微服務架構模式微服務架構
- binder 一個簡單的c++服務的實現,與callback實現C++
- 使用WebSocket實現一個簡單的頁面聊天Web
- 簡單幾步實現滑動驗證碼(後端驗證)後端
- go-kit微服務:一個簡單的API閘道器Go微服務API
- .NET雲原生應用實踐(二):Sticker微服務RESTful API的實現微服務RESTAPI
- 通過Dapr實現一個簡單的基於.net的微服務電商系統(十五)——集中式介面文件實現微服務
- 通過Dapr實現一個簡單的基於.net的微服務電商系統(二十)——Saga框架實現思路分享微服務框架
- BAPI的簡單實現步驟API
- 使用JS實現一個簡單的選項卡效果JS
- php實現一個簡單的socketPHP
- 實現一個簡單的TomcatTomcat
- 實現一個簡單的模板引擎
- 實現一個簡單的 dd 庫
- 自己實現一個簡單的 PromisePromise
- php實現一個簡單的堆PHP
- Java實現一個簡單的BitArrayJava
- 簡單的實現一個原型鏈原型
- Yii2.0 實現RESTful風格的簡單APIRESTAPI
- 簡單介紹SpringMVC RESTFul實現列表功能SpringMVCREST
- 使用分散式Actor實現微服務分散式微服務
- 如何通過幾個簡單的步驟編寫一個漂亮的初級開發者簡歷
- 通過Dapr實現一個簡單的基於.net的微服務電商系統(十六)——dapr+sentinel中介軟體實現服務保護微服務