使用Jetty编写RESTful接口

简介: 使用Jetty编写RESTful接口

一、依赖

     <!--Jetty服务器的核心依赖项,用于创建和管理服务器。-->
        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-server</artifactId>
            <version>9.4.43.v20210629</version>
        </dependency>
        <!--        Jetty的Servlet支持依赖项,用于处理Servlet相关的功能。-->
        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-servlet</artifactId>
            <version>9.4.43.v20210629</version>
        </dependency>
        <!--        Jersey的Servlet容器依赖项,用于支持JAX-RS(Java API for RESTful Web Services)的实现-->
        <dependency>
            <groupId>org.glassfish.jersey.containers</groupId>
            <artifactId>jersey-container-servlet</artifactId>
            <version>2.34</version>
        </dependency>
        <!--        Jersey的HK2依赖项,用于依赖注入和管理。-->
        <dependency>
            <groupId>org.glassfish.jersey.inject</groupId>
            <artifactId>jersey-hk2</artifactId>
            <version>2.34</version>
        </dependency>
        <!--        JAX-RS API的依赖项,提供了构建RESTful接口的核心功能。-->
        <dependency>
            <groupId>javax.ws.rs</groupId>
            <artifactId>javax.ws.rs-api</artifactId>
            <version>2.1.1</version>
        </dependency>

二、启动类

 
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.servlet.ServletHolder;
import org.example.controller.HelloWorldResource;
 
public class App {
 
    public static void main(String[] args) throws Exception {
        Server server = new Server(8088); // 创建Jetty服务器并指定端口号为8088
 
        ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
        context.setContextPath("/"); // 设置Servlet上下文路径为根路径 "/"
 
        server.setHandler(context); // 将Servlet上下文设置为服务器的处理程序
 
        ServletHolder holder = context.addServlet(org.glassfish.jersey.servlet.ServletContainer.class, "/*");
        // 将Jersey的ServletContainer添加到Servlet上下文中,映射到所有请求路径 "/*"
 
        holder.setInitOrder(0);
        holder.setInitParameter("jersey.config.server.provider.classnames", HelloWorldResource.class.getCanonicalName());
        // 配置Jersey的ServletContainer,指定要提供的RESTful资源类为HelloWorldResource
 
        server.start(); // 启动Jetty服务器
        server.join(); // 阻塞主线程,直到服务器停止
    }
 
}

三、接口

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
 
@Path("/hello")
public class HelloWorldResource {
 
    @GET
    @Produces(MediaType.TEXT_PLAIN)
    public String sayHello() {
        return "Hello, World!";
    }
}

四、测试

http://localhost:8088/hello

目录
相关文章
|
2月前
|
XML 开发框架 JSON
flea-jersey使用之Flea RESTful接口客户端接入
本篇介绍 Flea框架下的 flea-jersey-client模块,并提供客户端依赖管理及接入步骤
39 1
flea-jersey使用之Flea RESTful接口客户端接入
|
2月前
|
开发框架 API 网络架构
flea-jersey使用之Flea RESTful接口服务端接入
本篇介绍 Flea框架下的 flea-jersey-server模块,并提供服务端依赖管理及接入步骤
39 1
flea-jersey使用之Flea RESTful接口服务端接入
|
2月前
|
XML JSON 数据格式
【第20期】一文读懂Restful接口规范
【第20期】一文读懂Restful接口规范
788 0
|
2月前
|
监控 安全 测试技术
《Eolink 征文活动- -RESTful接口全解测试-全方位了解Eolink-三神技超亮点》
《Eolink 征文活动- -RESTful接口全解测试-全方位了解Eolink-三神技超亮点》
78 0
|
20天前
|
XML 物联网 API
服务端和客户端 RESTful 接口上传 Excel 的 Python 代码
本文作者木头左是物联网工程师,分享如何使用 Python 和 Flask-RESTful 构建一个简单的 RESTful API,实现文件上传功能,特别支持Excel文件。通过安装Flask和Flask-RESTful库,创建Flask应用,实现文件上传接口,并将其添加到API。该方法具有简单易用、灵活、可扩展及社区支持等优点。
服务端和客户端 RESTful 接口上传 Excel 的 Python 代码
|
13天前
|
存储 前端开发 安全
Nuxt3 实战 (十):使用 Supabase 实现 RESTful 风格 API 接口
这篇文章介绍了如何使用Supabase实现RESTful风格的API接口,用于网站分类和子站点的增删改查(CURD)功能。文章首先阐述了表设计,包括ds_categorys和ds_websites两张表的列名、类型和用途,并提到了为每张表添加的user_id和email字段以支持用户身份识别。接着,文章描述了接口设计,以ds_websites表为例,说明了如何通过RESTful API实现CURD功能,并给出了使用SupabaseClient实现插入数据的相关代码。文章最后提供了项目效果预览和总结,指出学习了Nuxt3创建接口及调用Supabase数据库操作。
Nuxt3 实战 (十):使用 Supabase 实现 RESTful 风格 API 接口
|
12天前
|
XML 安全 API
API攻防-接口安全&SOAP&OpenAPI&RESTful&分类特征导入&项目联动检测
API攻防-接口安全&SOAP&OpenAPI&RESTful&分类特征导入&项目联动检测
|
21天前
|
SQL 缓存 测试技术
RESTful API设计的最佳实践:构建高效、可维护的Web服务接口
【6月更文挑战第11天】构建高效、可维护的RESTful API涉及多个最佳实践:遵循客户端-服务器架构、无状态性等REST原则;设计时考虑URL结构(动词+宾语,使用标准HTTP方法)、使用HTTP状态码、统一响应格式及错误处理;确保数据安全(HTTPS、认证授权、输入验证);实施版本控制;并提供详细文档和测试用例。这些实践能提升Web服务接口的性能和质量。
|
4天前
|
存储 API
什么是RESTful接口风格
什么是RESTful接口风格
7 0
|
1月前
|
API Python JSON
使用django创建简单restful应用接口的步骤
【6月更文挑战第2天】本文简介使用Django创建API服务涉及安装djangorestframework,创建api应用,定义URL路由,编写视图和序列化器。这个过程展示了如何用Django Rest Framework构建JSON格式的API。
25 2