返回

spring boot-rest控制器上的Http POST不返回任何内容Springboot

发布时间:2022-05-31 15:48:21 236
# json

我想使用in发出一个简单的HTTP POST请求。REST APISpringboot

HTTP GET已经实施并且它们工作正常,我正在关注这个链接,但我被困在POST方法上。

我认为RestController是对的,但我对Springboot使用终端发送的请求有一些疑问。

首先,这是我想Postgres使用方法保存在 db()上的模型POST,它被称为NFT:

@Entity
public class NFT {
    
    public NFT(Long new_user_id) {
        this.title=getRandomString();
        this.price=0;
        this.description="Niente";
        this.image="";
        this.user_id=new_user_id;
    }
    
    public NFT() {
        this.title=getRandomString();
        this.price=0;
        this.description="Niente";
        this.image="";
    }

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    
    private Long user_id;
    
    public String title;
    
    public String image;
    
    public float price;

    public String description;
    
}

这个类有2个构造函数,一个使用User_ID另一个只是一个空的默认构造函数,所以我可以将其设为空post请求原因ID将自动生成。

这是我的休息课:

@RestController
@RequestMapping("/restNFT")
public class NFTRestController {
        
    @Autowired
    private NFTService service;
    
    //curl GET http://127.0.0.1:8080/restNFT/1   example
    
    @RequestMapping(value="/{nft_id}",method=RequestMethod.GET)
    public Optional getNFTbyID(@PathVariable int nft_id) {
        return service.getSingleNFTbyId((long) nft_id);
    }
    
    //curl GET http://127.0.0.1:8080/restNFT/user/1
    @RequestMapping(value="/user/{persona_id}",method=RequestMethod.GET)
    public List getAllNFTsFromPerson(@PathVariable int persona_id) {
        return service.getAllNFTsFromPerson((long) persona_id);
    }
    
    @RequestMapping(value="/nft",method=RequestMethod.POST)
    public void saveNFT(@RequestBody  NFT nft) {
        System.out.println(nft);
        service.saveNewNFT(nft);
    }
    
    @RequestMapping(value="/manyNFTs",method=RequestMethod.POST)
    public void saveAllNFTs(List nfts) {
        service.saveAllNFT(nfts);
        return ;
    }
    
}

N、 B.:service.saveNewNFT(nft)只是打电话而已save()方法CrudRepository界面

GET请求工作,因此我认为至少该类的前半部分是正确的,例如在终端上编写:

curl GET http://127.0.0.1:8080/restNFT/1 

正确返回:

{"title":"yonwqelnrx","image":"","price":0.0,"description":"Nothing"}

但如果我试着把POST请求:

curl POST http://127.0.0.1:8080/restNFT/nft -d '{}'

我希望db会以json作为响应,而不是在屏幕上打印任何内容。

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(1)
按点赞数排序
用户头像