从Spring Rest API返回的响应中忽略模板属性

时间:2019-03-29 13:15:23

标签: spring rest spring-hateoas

我使用Spring框架开发了REST API,实现了Spring HATEOS,但在下面的响应中,我想省略下图黑色矩形框中的“模板”

enter image description here

现在,我通过实现ResourceAssembler<>创建了一个汇编程序类,并通过实现它的toResource()方法放下了所有与链接相关的代码,并在我的控制器中调用了该代码 汇编器

package com.javarnd.bbms.assembler;

import static org.springframework.hateoas.mvc.ControllerLinkBuilder.linkTo;
import static org.springframework.hateoas.mvc.ControllerLinkBuilder.methodOn;

import org.springframework.hateoas.Resource;
import org.springframework.hateoas.ResourceAssembler;
import org.springframework.stereotype.Component;

import com.javarnd.bbms.model.DonorDetail;
import com.javarnd.bbms.webapi.DonorDetailRestControllerV3;

    @Component
    public class DonorDetailAssembler implements ResourceAssembler<DonorDetail,Resource<DonorDetail>> {

        @Override
        public Resource<DonorDetail> toResource(DonorDetail donorDetail) {
            return new Resource<>(donorDetail,
                    linkTo(methodOn(DonorDetailRestControllerV3.class).one(donorDetail.getDonorId())).withSelfRel(),
                    linkTo(methodOn(DonorDetailRestControllerV3.class).all()).withRel("donors"));
        }

    }

控制器代码段

@GetMapping(value=ONE, produces=MediaType.APPLICATION_JSON_VALUE)
    public Resource<DonorDetail> one(@PathVariable Long id) {
        DonorDetail donorDetail=null;
        try {
            donorDetail = donorDetailService.findById(id);
            return donorAssembler.toResource(donorDetail);
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }

我没有碰到任何文档的帖子,都可以根据自己的需求调整响应,因此将不胜感激。

0 个答案:

没有答案