[JavaEE] Implement a REST Endpoint
1. Create a rest folder with JAXRSConfiguration.java:
- package com.pluralsight.bookstore.rest;
- import javax.ws.rs.ApplicationPath;
- import javax.ws.rs.core.Application;
- @ApplicationPath("api")
- public class JAXRSConfiguration extends Application {
- }
2. Create Endpoint file: BookEndpoint.java:
- @Path("/books")
- public class BookEndpoint {
- @Inject
- private BookRepository bookRepository;
- }
- package com.pluralsight.bookstore.rest;
- import com.pluralsight.bookstore.model.Book;
- import com.pluralsight.bookstore.repository.BookRepository;
- import javax.inject.Inject;
- import javax.validation.constraints.Min;
- import javax.ws.rs.*;
- import javax.ws.rs.core.Context;
- import javax.ws.rs.core.Response;
- import javax.ws.rs.core.UriInfo;
- import java.net.URI;
- import java.util.List;
- import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
- //api/books
- @Path("/books")
- public class BookEndpoint {
- @Inject
- private BookRepository bookRepository;
- @POST
- @Consumes(APPLICATION_JSON)
- public Response createBook(Book book, @Context UriInfo uriInfo) {
- book = bookRepository.create(book);
- URI createedURI = uriInfo.getBaseUriBuilder().path(book.getId().toString()).build();
- return Response.created(createedURI).build();
- }
- @GET
- @Produces(APPLICATION_JSON)
- public Response getBooks() {
- List<Book> books = bookRepository.findAll();
- if(books.size() == 0) {
- return Response.noContent().build();
- }
- return Response.ok(books).build();
- }
- @GET
- @Path("/{id: \\d+}")
- @Produces(APPLICATION_JSON)
- public Response getBook(@PathParam("id") @Min(1) Long id) {
- Book book = bookRepository.find(id);
- if(book == null) {
- return Response.status(Response.Status.NOT_FOUND).build();
- }
- return Response.ok(book).build();
- }
- // api/books/count
- @GET
- @Path("/count")
@Produces(PLAIN_TEXT)- public Response countBooks() {
- Long nbOfBooks = bookRepository.countAll();
- if(nbOfBooks == 0) {
- return Response.noContent().build();
- }
- return Response.ok(nbOfBooks).build();
- }
- @DELETE
- @Path("/{id : \\d+}")
- public Response deleteBook(Long id) {
- bookRepository.delete(id);
- return Response.noContent().build();
- }
- }
[JavaEE] Implement a REST Endpoint的更多相关文章
- [JavaEE] Implement a test for REST endpoint
1. We have the BookEndpoint.java: package com.pluralsight.bookstore.rest; import com.pluralsight.boo ...
- Service Station - An Introduction To RESTful Services With WCF
Learning about REST An Abstract Example Why Should You Care about REST? WCF and REST WebGetAttribute ...
- Service Discovery in WCF 4.0 – Part 2 z
Service Discovery in WCF 4.0 – Part 2 In the previous post I discussed about the basic usage of WCF ...
- Service Discovery in WCF 4.0 – Part 1 z
Service Discovery in WCF 4.0 – Part 1 When designing a service oriented architecture (SOA) system, t ...
- JavaEE路径陷阱之getRealPath
转自:http://blog.csdn.net/shendl/article/details/1427637 JavaEE路径陷阱之getRealPath 本文是<Java路径问题最终解 ...
- 【JavaEE WEB 开发】Tomcat 详解 Servlet 入门
转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/47146817 一. Tomcat 下载安装配置 1. Tomcat 下载 T ...
- Implement JSON Web Tokens Authentication in ASP.NET Web API and Identity 2.1 Part 3 (by TAISEER)
http://bitoftech.net/2015/02/16/implement-oauth-json-web-tokens-authentication-in-asp-net-web-api-an ...
- [JavaEE] Injecting Bean
So what is a Bean, in JavaEE, any class expect Entity are Bean. One usefully thing in Bean is Depend ...
- 【JavaEE WEB 开发】Tomcat 具体解释 Servlet 入门
转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/47146817 一. Tomcat 下载安装配置 1. Tomcat 下载 T ...
随机推荐
- sql剪切数据
实际项目当中用到的案例,个人笔记. USE [CA-SM]GO/****** Object: StoredProcedure [dbo].[PG_SM_AddSum] Script Date: ...
- JavaScript(十四)经典的Ajax
(function(){ //唯一向外暴露一个顶层变量 var myajax = window.myajax = {}; //作者.版本号信息 myajax.author = "maxwel ...
- Android Error:Failed to resolve: com.afollestad:material-dialogs:
背景: 同事把Android项目直接考给了我...我在Android Studio上运行,然后提示: Error:Failed to resolve: com.afollestad:material- ...
- org.apache.jasper.JasperException: javax.el.PropertyNotFoundException: Property [xxx] not readable on type [xxx]
由于javaBean中的属性是custFullName,所以在使用jsp的时候,通过el表达式获取属性的值<td>${m.CustFullName}</td>.但是加载页面的时 ...
- ubuntu+ngnix+thinkphp pathinfo配置
一.thinkphp 项目改为pathinfo模式 XXX/ThinkPHP/Conf/convention.php文件中找到 'URL_MODEL' => 1, // URL访问模式,可选参数 ...
- mongodb--命令练习
windows10安装下载mongodb # 官网或镜像地址下载mongodb exe 二进制安装包 # 安装时选用custorm 去除勾选compass可视化工具 # 安装完成创建data文件,修改 ...
- UVA12118 Inspector's Dilemma(欧拉路径)
题目: 某个国家有V(V≤1000)个城市,每两个城市之间都有一条双向道路直接相连,长度为T(每条边的长度都是T).你的任务是找一条最短的道路(起点和终点任意), 使得该道路经过E条指定的边.输出这条 ...
- Navicat for MySQL(Ubuntu)过期解决方法
推荐购买正版软件,尊重版权 [官网在这里] Navicat for MySQL(Ubuntu系统)免费版试用过期解决方法: Step1. 直接删除 /home目录下的 .navicat文件夹(64 ...
- <SpringMvc>入门三 参数绑定
1.get请求 <%--请求参数的绑定--%> <%--get请求参数--%> <a href="/param/testParam1?username=tom& ...
- 修改虚拟机中Linux的IP
联网:ifup eth0 查看ip:ifconfig 点击编辑,选择NAT,子网ip修改第三字段为25,确定,重启linux后,会自动分配字段为25的ip 或者,也可以修改为自己想要的ip,如图:进入 ...