2017-08-21 329 views
0

我正在开发REST Web Service应用程序,但使用REST Client POSTMAN Body选项卡显示禁用。POSTMAN中的Body选项卡禁用

我创建了一个名为EmployeeController类处理URI呼叫作为如下所示:

package com.Employee; 

@Path("/response") 

public class EmployeeController { 

    EmployeeService employeeService = new EmployeeService(); 

    @GET 
    @Produces(MediaType.APPLICATION_JSON) 
    public Response getAllEmployee(){ 
     List<Employee> emp = employeeService.getAllEmployee(); 
     return Response.status(Status.CREATED).entity(emp).build(); 
    } 
    @POST 
    @Consumes(MediaType.APPLICATION_JSON) 
    @Produces(MediaType.APPLICATION_JSON) 
    public Response addEmployee(Employee emp){ 
     Employee e = employeeService.addEmployee(emp); 
     return Response.status(Status.CREATED).entity(emp).build(); 
    } 
} 

的方法getAllEmployee()获取员工的所有细节和方法addEmployee()增加雇员。

进行更改后已经取得了web.xml文件:

<web-app id="WebApp_ID" version="2.4" 
    xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> 
    <display-name>RestPathAnnotationExample</display-name> 

    <servlet> 
     <servlet-name>jersey-serlvet</servlet-name> 
     <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class> 
     <init-param> 
      <param-name>com.sun.jersey.config.property.packages</param-name> 
      <param-value>com.Employee</param-value> 
     </init-param> 
     <init-param> 
      <param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name> 
      <param-value>true</param-value> 
     </init-param> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>jersey-serlvet</servlet-name> 
     <url-pattern>/rest/*</url-pattern> 
    </servlet-mapping> 

</web-app> 

在pom.xml中已经添加了两个Maven依赖:球衣服务器和新泽西州JSON。

由于POSTMAN中的正文部分被禁用,代码中是否存在任何问题?

+1

GET请求不能有一个主体 – litelite

+0

谢谢。当我将HTTP方法从GET更改为POST时,主体选项卡已启用。 –

+0

嗨@RanjuPillai如果答案已经解决了您的问题,请考虑通过点击复选标记来接受它。这向更广泛的社区表明,您已经找到了解决方案,并为答复者和您自己提供了一些声誉。没有义务这样做 – Ray

回答

0

除了litelite对GET请求没有正文的评论之外,我建议你更多地了解API如何工作。 https://softwareengineering.stackexchange.com/questions/203844/what-does-it-mean-to-expose-something

您的REST代码只公开URL和任何数据正在由您的CRUD方法“返回”。对代码的任何其他更改(如pom.xml)对于消费者而言都是不可见的和不相关的;否则,请考虑安全漏洞。而且,POSTMAN是一个测试工具。它显示,发送和截取数据,但不会根据数据修改其行为。