[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 ...
随机推荐
- Spring Boot (27) actuator服务监控与管理
actuaotr是spring boot项目中非常强大的一个功能,有助于对应用程序进行监控和管理,通过restful api请求来监管.审计.收集应用的运行情况,针对微服务而言它是必不可少的一个环节. ...
- FCC 基础JavaScript 练习3
1.通过使用提供的变量参数:名词myNoun.形容词myAdjective.动词myVerb.副词myAdverb,来创建一个新的句子 result, function wordBlanks(myNo ...
- ubuntu系统中查看本机cpu和内存信息的命令和用法
https://zhidao.baidu.com/question/192966322.html 写出ubuntu linux系统中查看本机cpu和内存信息的命令和用法,以及如何解读这些命令 ubun ...
- ARP劫持处理指令集
第一组(据传xp有效,未实验) arp -a arp -d arp -s IP地址 MAC地址 第二组(windows2008R2有效,已实验) netsh i i show in (记住其中本地连接 ...
- windows2008 rs+sql 2008 下配置站点权限
几点注意 Windows 2008 iis7.5 1 建立应用程序池 2 文件目录的权限加上 IIS AppPool\应用程序池名称 (找不到直接录入) 3 文件目录要给 IUser权限,不然出错. ...
- My-Eclipse 快捷键大全
Ctrl+1 快速修复(最经典的快捷键,就不用多说了) Ctrl+D: 删除当前行 Ctrl+Alt+↓ 复制当前行到下一行(复制增加) Ctrl+Alt+↑ 复制当前行到上一行(复制增加) Alt+ ...
- ubuntu服务器全部署
一.nginx+php+redis+phpredis 二.安装mysql 三.上传web文件 cd /var mkdir www cd www/ mkdir html cd html/ rz (apt ...
- 【OpenCV】像素操作的数字图像处理
之前几天捣鼓matlab,用来处理数字图像,矩阵操作什么的,如果忘记线性代数就真的GG了. 在用了matlab被深深地吐槽之后,决定改用opencv,C++貌似也是处理数字图像的很好的工具 1. 在u ...
- lsb_release No LSB modules are available
lsb_release 提示: No LSB modules are available 执行: sudo apt-get install lsb-core
- 关于MD5解密网站。www.cmd5.com
第一次听说这个网站,本人的名字居然也能够被解密,而且还是需要付费取得明文! 大家知道,md5加密是我们常用的加密方式,这个加密方式的好处在于不可逆.而且任何环境下算出的密文应该都是相同的,所以在大家登 ...