Не удается выполнить команду PUT в PostMan - PullRequest
0 голосов
/ 13 июля 2020

Я новичок в мире Spring Boot и MongoDB, так что это может быть глупый вопрос.

Я создал проект Spring Boot, связанный с базой данных MondoDB. В контроллере я определил следующие методы: get, getAll, add, update и delete.

Все работает нормально, пока я тестирую свое приложение на PostMan, за исключением метода обновления. Действительно, в PostMan, используя команду PUT, я получаю эту ошибку:

«status»: 405, «error»: «Method Not Allowed»

В поисках решения я нашел эти строки в PostMan: PUT не разрешено

где значение «Allow» содержит только «GET, DELETE», а не PUT.

Возможно, этот факт связан с моей ошибкой ? Как я могу это исправить?

Спасибо и извините за мой плохой английский sh и незнание SpringBoot!

РЕДАКТИРОВАТЬ 1: Код контроллера:

@PutMapping("/{id}")
public ResponseEntity <Cliente> updateCliente(@PathVariable(value = "id") String id, @RequestBody Cliente cliente){
    Optional<Cliente> c = clienteRepo.findById(id);
    
    Cliente _c = new Cliente();
    if(c.isPresent()) {
        _c = c.get();
        _c.setId(cliente.getId());
        _c.setNome(cliente.getNome());
    }
    final Cliente updatedCliente = clienteRepo.save(_c);
    return ResponseEntity.ok(updatedCliente);
}

РЕДАКТИРОВАТЬ 2: запрос PostMan: PostMan

1 Ответ

1 голос
/ 13 июля 2020

Вы можете проверить сопоставленный api в журнале, добавив следующую конфигурацию в файл application.properties:

logging.level.org.springframework.web.servlet.mvc.method.annotation=TRACE

Например: у меня есть контроллер:

@RestController
@RequestMapping("/client")
public class HomeRestController {

    @PutMapping("/{id}")
    public void put(@PathVariable(value = "id") String id, @RequestBody TestingModel model) {
        System.out.println(id);
        System.out.println(model.getName());
    }
}

При запуске приложения вы можете увидеть сопоставленный API в журнале консоли, как показано ниже:

    2020-07-14 09:36:49.287 TRACE 13224 --- [  restartedMain] s.w.s.m.m.a.RequestMappingHandlerMapping : 
    c.e.e.c.HomeController:
    { /index}: home()
2020-07-14 09:36:49.288 TRACE 13224 --- [  restartedMain] s.w.s.m.m.a.RequestMappingHandlerMapping : 
    c.e.e.c.HomeRestController:
    {PUT /client/{id}}: put(String,TestingModel)
2020-07-14 09:36:49.293 TRACE 13224 --- [  restartedMain] s.w.s.m.m.a.RequestMappingHandlerMapping : 
    o.s.b.a.w.s.e.BasicErrorController:
    { /error}: error(HttpServletRequest)
    { /error, produces [text/html]}: errorHtml(HttpServletRequest,HttpServletResponse)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...