
如何使用 node.js 和 express 創(chuàng)建 rest api
與 Jakarta EE 的其他規(guī)范類似,使用 Jakarta REST API 只需將 Web API 的依賴項添加到項目中即可。這將為您提供編寫 Jakarta EE 應(yīng)用程序所需的所有類、接口和注解。在本例中,Payara Server 提供了所有必要的代碼和實現(xiàn),因此您可以創(chuàng)建一個僅包含應(yīng)用程序代碼的輕量級 WAR 文件。
如果您使用 Maven 作為構(gòu)建工具,可以在 pom.xml
文件中添加以下依賴項:
jakarta.platform
jakarta.jakartaee-web-api
9.0.0
provided
對于 Gradle 用戶,可以在 build.gradle
文件中添加以下內(nèi)容:
providedCompile 'jakarta.platform:jakarta.jakartaee-web-api:9.0.0'
配置 Jakarta REST 框架通常只需定義觸發(fā) REST 引擎處理的 URL 部分。例如,以下 Java 類定義了應(yīng)用程序的基本 URI:
@ApplicationPath("/api")
public class DemoApplication extends Application {
}
在上述代碼中,@ApplicationPath
注解指定了所有資源 URI 的基礎(chǔ)路徑。在這個例子中,/api
將成為所有端點的基礎(chǔ) URL 部分。
在配置好 Jakarta REST API 后,我們可以創(chuàng)建一個簡單的 REST API 端點。以下是一個示例代碼:
@Path("/hello")
public class HelloResource {
@GET
@Produces(MediaType.TEXT_PLAIN)
public String sayHello() {
return "Hello World";
}
}
將上述代碼編譯、打包并部署到 Payara Server 或 Payara Micro 后,您可以通過以下命令訪問端點:
curl -v http://localhost:8080/rest/api/hello
返回結(jié)果如下:
Hello World
<主機名>
:運行 Payara Server 的計算機主機名。<端口>
:Payara Server 監(jiān)聽的端口,默認(rèn)為 8080。<上下文根>
:部署應(yīng)用程序的上下文路徑,默認(rèn)為 WAR 文件名(不帶擴展名)。<REST 配置>
:@ApplicationPath
注解中定義的路徑。<資源配置>
:@Path
注解中定義的路徑。在編寫 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;
}
}
在上述代碼中:
{name}
是路徑參數(shù),通過 @PathParam
注解映射到方法參數(shù)。language
是查詢參數(shù),通過 @QueryParam
注解映射到方法參數(shù)。例如,訪問以下 URL:
http://localhost:8080/rest/api/hello/Payara?language=en
將會調(diào)用 doGreeting("Payara", "en")
方法。
在生產(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ù)。
除了從服務(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();
}
}
在上述代碼中:
@POST
注解指定了 HTTP 方法。@Consumes
注解指定了請求體的內(nè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();
}
}
}
在上述代碼中:
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
如何使用 node.js 和 express 創(chuàng)建 rest api
MongoDB 基本使用:工具、API、Spring 集成
Google Gemini API使用教程:提升SEO的終極指南
使用 ASP.NET Web API 構(gòu)建 RESTful API
API安全:基于令牌的驗證 vs 基于密鑰的驗證,哪種更可靠?
RESTful Web API 設(shè)計中要避免的 6 個常見錯誤
深入解析API Gateway:微服務(wù)架構(gòu)中的關(guān)鍵組件及其重要功能
REST API設(shè)計開源工具:值得推薦的10+款
實測:阿里云百煉上線「全周期 MCP 服務(wù)」,AI 工具一站式托管