繁体   English   中英

我想'插入XML并在Rest API中提供对象

[英]I want to 'pase xml and serve objects in rest api

`这是我的xml代码。我对restservice非常陌生。

     <?xml version="1.0" encoding="UTF-8"?>
    <departments>
        <deptname name="Research">
            <employee>
                <eid>r-001</eid>
                <ename>Dinesh R</ename>
                <age>35</age>
                <deptcode>d1</deptcode>
               <deptname>Research</deptname>
                <salary>20000</salary>
              </employee>
            </deptname>
            <deptname name="Sales">
             <employee>
                <eid>s-001</eid>
                <ename>Kanmani S</ename>
                <age>35</age>
                <deptcode>d2</deptcode>
                <deptname>Sales</deptname>
                <salary>30000</salary>
              </employee>
             </deptname>
           </departments>

通过使用此xml,我想创建Restservice。我已经尝试过,为此创建了Java类(我不知道正确与否)。但是我被困在该区域的控制器中,我将如何映射。

这是最简单的方法,我认为1)创建Departments pojo 2)创建将组成(组成)为Departments的Department pojo 3)创建常规springboot控制器,确保控制器方法产生并使用application / xml 4)include pom.xml中的以下依赖项

<dependency>
    <groupId>com.fasterxml.jackson.dataformat</groupId>
    <artifactId>jackson-dataformat-xml</artifactId>
</dependency>

这是我的示例Departments.java

import org.springframework.stereotype.Component;

@Component
public class Departments {
   private List<Department> department;

   public List<Department> getDepartment() {
    return department;
   }

   public void setDepartment(List<Department> department) {
    this.department = department;
   }

}

部门.java

import org.springframework.stereotype.Component;

@Component
public class Department {
  private String name;
  private String id;
  private int employeeCount;
  public String getName() {
    return name;
  }
  public void setName(String name) {
    this.name = name;
  }
  public String getId() {
    return id;
  }
  public void setId(String id) {
    this.id = id;
  }
  public int getEmployeeCount() {
    return employeeCount;
  }
  public void setEmployeeCount(int employeeCount) {
    this.employeeCount = employeeCount;
  }
  @Override
  public String toString() {
    return "Department [name=" + name + ", id=" + id + ", employeeCount=" + 
           employeeCount + "]";
  }
  public Department() { }
  public Department(String name) { 
    this.name = name;
  }
  public Department(String name, String id) {
    this.name=name;
    this.id=id;
  }
  public Department(String name, String id, int employeeCount) {
    this.name=name;
    this.id=id;
    this.employeeCount = employeeCount;
  }
}

SpringBootApplication.java

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication(scanBasePackages = {"test.controllers","test.main", "test.model"})
public class ServiceApplication {

  public static void main(String[] args) {
    SpringApplication.run(ServiceApplication.class, args);
  }
}

SpringController

@RestController
public class GreetingController {

    @RequestMapping("/hello/{name}")
    String hello(@PathVariable String name) {
        return "Hello, " + name + "!";
    }

    @PostMapping(path = "/departments", produces = MediaType.APPLICATION_XML_VALUE, consumes = MediaType.APPLICATION_XML_VALUE)
    @ResponseBody
    Departments newEmployee(@RequestBody List<Department> departments) {
            Departments departmentsObj = new Departments();
            for(Department department : departments) {
                System.out.println(department);
            }
        departmentsObj.setDepartment(departments);

        return departmentsObj;
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM