POSTMAN中的Body选项卡已禁用

时间:2017-08-21 19:05:08

标签: rest web-services maven jersey postman

我正在开发REST Web Service应用程序,但在使用 REST Client POSTMAN 时,正文选项卡显示已停用。

我创建了一个名为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()检索员工的所有详细信息,方法a​​ddEmployee()添加员工。

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依赖项:jersey-server和jersey-json。

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

1 个答案:

答案 0 :(得分:0)

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

您的REST代码仅公开URL以及CRUD方法“返回”的任何数据。对代码的任何其他更改(如pom.xml)都是隐藏的,与消费者无关;如果不是这样的话,请考虑安全漏洞。而且,POSTMAN是一种测试工具。它显示,发送和拦截数据,但不会根据数据修改其行为。