DropWizard
http://www.dropwizard.io/0.9.2/docs/getting-started.html
Jetty for HTTP
Jersey for REST
官方说法 capable of doing 30,000-50,000 requests per second
定义依赖
<dependencies> <dependency> <groupId>io.dropwizard</groupId> <artifactId>dropwizard-core</artifactId> <version>${dropwizard.version}</version> </dependency> </dependencies>
实现
最核心的类Resource,定义路径和方法
import com.google.common.base.Optional; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.QueryParam; import javax.ws.rs.core.MediaType; /** * Created by xuanzhui on 2016/3/21. */ @Path("/hello") @Produces(MediaType.APPLICATION_JSON) public class HelloWorldResource { @GET public String sayHello(@QueryParam("name") Optional<String> name) { return "Hello " + name.or("unknown"); } }
定义启动的类Application
import io.dropwizard.Application; import io.dropwizard.Configuration; import io.dropwizard.setup.Environment; /** * Created by xuanzhui on 2016/3/21. */ public class HelloWorldApplication extends Application<Configuration> { public static void main(String[] args) throws Exception { new HelloWorldApplication().run(new String[] { "server" }); } @Override public void run(Configuration configuration, Environment environment) throws Exception { environment.jersey().register(new HelloWorldResource()); } }
直接运行Application,即可通过 localhost:8080/hello 访问
打包
打包出一个jar,使其包含全部的依赖,最核心的是pom.xml
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>cn.xz</groupId> <artifactId>DropWizardSample</artifactId> <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <dropwizard.version>0.9.2</dropwizard.version> <jdk.version>1.8</jdk.version> </properties> <dependencies> <dependency> <groupId>io.dropwizard</groupId> <artifactId>dropwizard-core</artifactId> <version>${dropwizard.version}</version> </dependency> </dependencies> <build> <finalName>DropWizardSample</finalName> <plugins> <!-- Set a compiler level --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.5.1</version> <configuration> <source>${jdk.version}</source> <target>${jdk.version}</target> </configuration> </plugin> <!-- Maven Shade Plugin --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>2.4.3</version> <configuration> <createDependencyReducedPom>true</createDependencyReducedPom> <filters> <filter> <artifact>*:*</artifact> <excludes> <exclude>META-INF/*.SF</exclude> <exclude>META-INF/*.DSA</exclude> <exclude>META-INF/*.RSA</exclude> </excludes> </filter> </filters> </configuration> <executions> <!-- Run shade goal on package phase --> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> <configuration> <transformers> <!-- important for RS --> <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/> <!-- add Main-Class to manifest file --> <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> <mainClass>cn.xz.HelloWorldApplication</mainClass> </transformer> </transformers> </configuration> </execution> </executions> </plugin> </plugins> </build> </project>
通过maven package生成fat/uber jar
运行java -jar DropWizardSample.jar,即可通过 localhost:8080/hello 访问
相关推荐
Dropwizard是一个基于Java的开源框架,专为快速构建高质量、生产级别的RESTful Web服务而设计。这个框架集合了多个成熟的Java库,如Jetty(HTTP服务器)、Jackson(JSON处理)、Hibernate(ORM)和 Metrics(监控)...
运行一个简单的例子上应用 。 先决条件: Java 1.8或更高版本。 Apache Maven。 这是运行它的方法: git clone https://github.com/andrus/link-rest-dropwizard.git cd link-rest-dropwizard mvn package java...
该示例代码演示了使用dropwizard的简单REST API。 堆 Dropwizard Gradle PostgreSQL 赫鲁库 它使用Gradle进行构建,并具有用于部署到Heroku上的配置。 它以Heroku插件的形式连接到Postgresql。 REST API Name...
- **资源导向**:每个URL代表一个资源,通过HTTP方法(GET、POST、PUT、DELETE等)操作资源。 - **无状态**:每次请求包含所有必要的信息,服务器不保存客户端状态。 - **缓存机制**:可选支持HTTP缓存策略,提高...
在给定的描述中,提到的是使用简单的Servlet实现REST框架。Servlet是Java中用于处理HTTP请求的组件,它可以被用来构建动态Web应用程序。下面我们将深入探讨如何利用Servlet实现RESTful API。 首先,了解REST的基本...
至此,你已经成功地使用Jersey实现了一个简单的REST接口,能够返回JSON数据。 进一步探索Jersey,你可以学习如何处理POST、PUT、DELETE请求,如何进行参数绑定,使用过滤器和拦截器,以及如何利用JAXB或Jackson进行...
此应用程序包含一个可选 DB API 模块的示例。 提供的示例说明了可用的一些功能,并演示了如何在 Dropwizard 中使用这些功能。 此数据库示例由以下类组成: PersonDAO说明了在 Hibernate 的帮助下使用数据访问对象...
本篇将深入探讨如何利用MyEclipse搭建一个简单的REST Web Service项目。 【描述】:在MyEclipse中创建RESTful Web服务的步骤并不复杂,适合初学者快速入门。我们将通过一个实际的例子,从创建项目、定义服务接口到...
在这个“开发REST的简单例子”中,我们将探讨如何使用Spring框架来创建一个RESTful API。 首先,让我们了解REST的基本原则: 1. 客户端-服务器架构:客户端和服务器之间有明确的职责划分,客户端负责用户界面和用户...
在"REST WebService简单应用"这个主题中,可能涉及的知识点包括如何创建一个简单的RESTful服务,使用JAX-RS(Java API for RESTful Web Services)框架,这是一个Java平台上的REST实现。JAX-RS提供了一种声明式的...
WCF REST(Representational State Transfer)是WCF的一个扩展,专门用于构建RESTful服务。REST是一种轻量级的架构风格,常用于Web服务设计,强调资源的识别和通过HTTP动词(GET、POST、PUT、DELETE等)进行操作。 ...
例如,一个简单的UriTemplate可以是`"GetCustomer/{customerId}"`,这里的`{customerId}`是一个占位符,实际请求时会被替换为客户ID值。通过这种方式,我们可以为不同的客户资源创建不同的URI,符合RESTful设计原则...
以下是一个简单的Java代码示例,展示了如何使用HttpClient发送POST请求: ```java CloseableHttpClient httpClient = HttpClients.createDefault(); HttpPost httpPost = new HttpPost(...
Dropwizard是一个开源的Java框架,它用于构建支持RESTful架构的服务。这种架构允许开发者构建可互操作的Web服务,这些服务通常用于Web API的开发。RESTful API是一组由网络(通常是Web)通过HTTP协议提供服务的规则...
dropwizard-pac4j 一个软件包,用于使用保护REST端点。 新版本5.0.0基于Dropwizard v2.x(JDK 11),而先前版本则基于Dropwizardv1.x。用法dropwizard-pac4j提供了两个必须集成到应用程序中的组件: 应用程序配置...
Java Dropwizard REST API 是一个基于Java开发的高效且强大的框架,用于快速构建高质量的RESTful Web服务。Dropwizard集合了多个成熟的开源库,为开发者提供了一站式解决方案,包括网络服务器、JSON处理、数据库连接...
通过以上步骤,你可以在ASP.NET中创建一个完整的REST服务接口,为客户端提供JSON或Stream数据。在实际项目中,还需要考虑安全、性能优化、版本控制等多个方面。提供的`Asp.net编写Rest服务接口.docx`文档可能包含了...
目前在三种主流的Web服务实现方案中,因为REST模式的Web服务与复杂的SOAP和XML-RPC对比来讲明显的更加简洁,越来越多的web服务开始采用REST风格设计和实现。例如,Amazon.com提供接近REST风格的Web服务进行图书查找...
该示例是一个简单的RESTful接口,可轻松管理任务计划器。 使用 v1.1.0框架 通过实现依赖注入 通过实现JPA 作为内存数据库 进行集成测试 和提供的API文档 提供的数据库迁移 作为容器化解决方案 使用HAL实现将库...
在Java中,Facebook4J是一个流行的库,它提供了一个简单的API来调用Facebook的REST API。使用Facebook4J,你需要先在Facebook开发者平台上注册应用,获取App ID和App Secret。然后,通过这些信息创建FacebookConfig...