Jakarta REST API 配置

與 Jakarta EE 的其他規(guī)范類似,使用 Jakarta REST API 只需將 Web API 的依賴項添加到項目中即可。這將為您提供編寫 Jakarta EE 應(yīng)用程序所需的所有類、接口和注解。在本例中,Payara Server 提供了所有必要的代碼和實現(xiàn),因此您可以創(chuàng)建一個僅包含應(yīng)用程序代碼的輕量級 WAR 文件。

Maven 配置

如果您使用 Maven 作為構(gòu)建工具,可以在 pom.xml 文件中添加以下依賴項:


 jakarta.platform
 jakarta.jakartaee-web-api
 9.0.0
 provided

Gradle 配置

對于 Gradle 用戶,可以在 build.gradle 文件中添加以下內(nèi)容:

providedCompile 'jakarta.platform:jakarta.jakartaee-web-api:9.0.0'

配置 REST 引擎

配置 Jakarta REST 框架通常只需定義觸發(fā) REST 引擎處理的 URL 部分。例如,以下 Java 類定義了應(yīng)用程序的基本 URI:

@ApplicationPath("/api")
public class DemoApplication extends Application {
}

在上述代碼中,@ApplicationPath 注解指定了所有資源 URI 的基礎(chǔ)路徑。在這個例子中,/api 將成為所有端點的基礎(chǔ) URL 部分。


創(chuàng)建簡單的 REST API 端點

在配置好 Jakarta REST API 后,我們可以創(chuàng)建一個簡單的 REST API 端點。以下是一個示例代碼:

@Path("/hello")
public class HelloResource {

 @GET
 @Produces(MediaType.TEXT_PLAIN)
 public String sayHello() {
 return "Hello World";
 }
}

運行結(jié)果

將上述代碼編譯、打包并部署到 Payara Server 或 Payara Micro 后,您可以通過以下命令訪問端點:

curl -v http://localhost:8080/rest/api/hello

返回結(jié)果如下:

Hello World

URL 結(jié)構(gòu)解析


讀取 URL 信息

在編寫 API 端點時,解析客戶端請求的 URL 信息非常重要。以下示例展示了如何讀取 URL 的路徑參數(shù)和查詢參數(shù):

@Path("/hello/{name}")
public class HelloResource {

 @GET
 @Produces(MediaType.TEXT_PLAIN)
 public String doGreeting(@PathParam("name") String name, @QueryParam("language") String language) {
 return "Hello " + name + " in " + language;
 }
}

在上述代碼中:

例如,訪問以下 URL:

http://localhost:8080/rest/api/hello/Payara?language=en

將會調(diào)用 doGreeting("Payara", "en") 方法。


JSON 支持

在生產(chǎn)環(huán)境中,JSON 是最常用的數(shù)據(jù)格式。以下示例展示了如何返回 JSON 數(shù)據(jù):

public class Person {
 private String name;
 private int age;

 // 必須包含無參構(gòu)造函數(shù)
 public Person() {}

 // Getter 和 Setter 省略
}
@Path("/person")
public class PersonResource {

 @GET
 @Produces(MediaType.APPLICATION_JSON)
 public Person getPerson() {
 Person person = new Person();
 person.setName("Rudy");
 person.setAge(42);
 return person;
 }
}

訪問以下 URL:

http://localhost:8080/rest/api/person

將返回如下 JSON 響應(yīng):

{
 "name": "Rudy",
 "age": 42
}

默認(rèn)情況下,Jakarta REST 會自動序列化 Java 對象為 JSON 數(shù)據(jù)。


發(fā)送數(shù)據(jù)到服務(wù)器

除了從服務(wù)器獲取數(shù)據(jù)外,您還可以通過 POST 請求向服務(wù)器發(fā)送數(shù)據(jù)。以下是一個示例:

@Path("/person")
public class PersonResource {

 @POST
 @Consumes(MediaType.APPLICATION_JSON)
 public Response createPerson(Person person) {
 // 處理接收到的 Person 數(shù)據(jù)
 return Response.status(Response.Status.CREATED).build();
 }
}

在上述代碼中:


控制 HTTP 狀態(tài)碼

在實際開發(fā)中,您可能需要根據(jù)不同的業(yè)務(wù)邏輯返回不同的 HTTP 狀態(tài)碼。以下示例展示了如何實現(xiàn):

@Path("/number")
public class NumberResource {

 @GET
 @Path("/{value}")
 public Response checkNumber(@PathParam("value") int value) {
 if (value % 2 == 0) {
 return Response.ok("Even number").build();
 } else {
 return Response.status(Response.Status.NOT_ACCEPTABLE).entity("Odd number").build();
 }
 }
}

在上述代碼中:


結(jié)論

Jakarta REST API 提供了一種簡單高效的方式來構(gòu)建 RESTful 服務(wù)。通過注解,您可以輕松配置 URL 路徑、HTTP 方法、請求和響應(yīng)的內(nèi)容類型等。

本篇文章介紹了 Jakarta REST API 的基礎(chǔ)知識,包括如何配置 REST 引擎、創(chuàng)建簡單的端點、處理 JSON 數(shù)據(jù)以及控制 HTTP 狀態(tài)碼。在未來的文章中,我們將進一步探討 Jakarta EE 的其他功能,例如數(shù)據(jù)驗證和 CDI 服務(wù)注入。


原文鏈接: https://blog.payara.fish/getting-started-with-jakarta-ee-9-how-to-create-a-rest-api-with-jakarta-ee-9

上一篇:

使用Python構(gòu)建RestFul API

下一篇:

spring boot rest api:教程、最佳實踐與示例
#你可能也喜歡這些API文章!

我們有何不同?

API服務(wù)商零注冊

多API并行試用

數(shù)據(jù)驅(qū)動選型,提升決策效率

查看全部API→
??

熱門場景實測,選對API

#AI文本生成大模型API

對比大模型API的內(nèi)容創(chuàng)意新穎性、情感共鳴力、商業(yè)轉(zhuǎn)化潛力

25個渠道
一鍵對比試用API 限時免費

#AI深度推理大模型API

對比大模型API的邏輯推理準(zhǔn)確性、分析深度、可視化建議合理性

10個渠道
一鍵對比試用API 限時免費