2016-04-25 8 views
0

Я пытаюсь добавить ссылки на каждую запись в моей базе данных, поскольку я пытаюсь реализовать концепцию HATEOAS. Однако у меня были некоторые проблемы с этим. Я пробовал следовать этому руководству https://spring.io/guides/gs/rest-hateoas/. Но безуспешно. Как и где следует писать код для добавления ссылок? Поскольку он не работает, когда я пытаюсь записать его в моем методе контроллера, потому что withSelfRel() не определен.Добавление ссылок на каждую запись с помощью Spring REST + MongoDB

В основном я пытаюсь добавить ссылку на каждую учетную запись в моей базе данных.

//Create account 
@RequestMapping(value="/accounts", method = RequestMethod.POST) 
public ResponseEntity<?> accountInsert(@RequestBody Account account) { 
    account = new Account(account.getFirstName(), account.getLastName(), account.getEmail(), account.getPassword(), account.getBirthDate(), account.getActivities(), account.getFriends()); 
    accountRepository.save(account); 
    //account.add(linkTo(methodOn(AccountController.class, accountInsert(account)).withSelfRel())); /// HERE IS MY TRY 
    HttpHeaders httpHeaders = new HttpHeaders(); 
    httpHeaders.setLocation(ServletUriComponentsBuilder.fromCurrentRequest().build().toUri()); 
    return new ResponseEntity<>(null, httpHeaders, HttpStatus.CREATED); 
} 

Заранее спасибо!

+0

Я думаю, вы написали правильный код, вы можете просто добавить сайт в '@ RequestMapping'. какая ошибка вы получаете –

+0

«Метод withSelfRel() не определен для типа AccountController». Он не распознает метод. Вы уверены, что код правильный? Потому что я думаю, что методOn требует (класс, String), и я вставил (класс, учетную запись), который является объектом. – BananaBackend

ответ

0

вы не можете использовать метод в той же одной
Попробуйте это: -

Link self=linkTo(AccountController.class).slash(account.getId()).withSelfRel(); 

Или вы можете обратиться с данной link

+0

{ "метка": "2016-04-25T09: 02: 20,986 + 0000", "Статус": 500, "ошибка": "Внутренняя ошибка сервера", "исключение": «org.springframework.data .mapping.model.MappingInstantiationException», „сообщение“:„Не удалось создать экземпляр org.springframework.hateoas.UriTemplate с помощью конструктора NO_CONSTRUCTOR с аргументами“, „путь“:„/ счета“ } – BananaBackend

+0

ли мне нужно добавить конструктор где-то? – BananaBackend

+0

нет необходимости писать конструктор, но я предполагаю, что сначала вы пройдете через эту ссылку, вы получите то, что хотите реализовать. –

 Смежные вопросы

  • Нет связанных вопросов^_^