DBに何かを投稿しようとしているときに@RestControllerを使用していくつかの問題が発生しました。 (ポストマンを使用して):「ポート/ポストlocalhost」を:で、このような何かを掲示しながら、スプリングレストコントローラの使用
{
"postID": "5",
"content": "testcontent",
"time": "13.00",
"gender": "Man"
}
:私の目標は、このようになり、結果を取得しようとすることです
{
"content": "testcontent",
"time": "13.00",
"gender": "Man"
}
Post.java
package bananabackend;
public class Post {
private final long id;
private String content;
private String time;
private String gender;
// Constructor
public Post(long id, String content, String time, String gender) {
this.id = id;
this.content = content;
this.time = time;
this.gender = gender;
}
// Getters
public String getContent() {
return content;
}
public long getId() {
return id;
}
public String getTime() {
return time;
}
public String getGender() {
return gender;
}
PostController.java
package bananabackend;
import java.util.List;
import org.springframework.data.mongodb.repository.MongoRepository;
import org.springframework.data.repository.query.Param;
import org.springframework.data.rest.core.annotation.RepositoryRestResource;
@RepositoryRestResource(collectionResourceRel = "posts", path = "posts")
public interface PostRepository extends MongoRepository<Post, String> {
List<Post> findPostByContent(@Param("content") String content);
}
package bananabackend;
import java.util.concurrent.atomic.AtomicLong;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import bananabackend.Post;
@RestController
public class PostController {
private final AtomicLong counter = new AtomicLong();
@RequestMapping(value="/posts", method = RequestMethod.POST)
public Post postInsert(@RequestParam String content, @RequestParam String time, @RequestParam String gender) {
return new Post(counter.incrementAndGet(), content, time, gender);
}
}
PostRepository.javaは、私はこのエラーを取得する:
{
"timestamp": 1460717792270,
"status": 400,
"error": "Bad Request",
"exception":
"org.springframework.web.bind.MissingServletRequestParameterException",
"message": "Required String parameter 'content' is not present",
"path": "/posts"
}
私が作ったすべての投稿にIDを設定したいが、動作するようには思えません。私は、このガイドに似た私のコードをビルドしようとしていた。
https://spring.io/guides/gs/rest-service/
さて、いくつかのRequestParamsを指定して、何も送信しないでください。すべてのオブジェクトをオブジェクトの中に入れ、コントローラ上で '@RequestBody NewObj obj'を使うべきです。 – dambros