Как использовать значение RequestHeader в запросе Get mapping вместо использования PathVariable при весенней загрузке для извлечения данных с использованием findById? - PullRequest
0 голосов
/ 22 февраля 2020

В моем загрузочном проекте Spring я создал таблицу с именем "Доктор" . Чтобы получить данные Doctors по их идентификатору, я создал один интерфейс репозитория и один класс контроллера.

Вот код моего DoctorRepository , который расширяет JpaRepository :

@Repository
public interface DoctorRepository extends JpaRepository<Doctor, Long> {
}

А вот код моего DoctorController class-

@RestController
@RequestMapping("/api")
public class DoctorController {

    @Autowired
    private DoctorRepository doctorRepository;


    @GetMapping("/doctors/{id}")
    public Doctor getDoctorById(@PathVariable(value = "id") Long doctorId) {
        return doctorRepository.findById(doctorId).orElseThrow(()-> new ResourceNotFoundException("","","doctor id "+doctorId+" not found"));
    }


}

Теперь дело в том, что ---

Для эксперимент, я хочу отправить doctorId через RequestHeader вместо использования pathVariables .

Вот решение, которое я пробовал -

@GetMapping("/doctors")
public Doctor getDoctorById(@RequestHeader("id") Long doctorId) {
    return doctorRepository.findById(doctorId).orElseThrow(()-> new ResourceNotFoundException("","","doctor id "+doctorId+" not found"));
    }

Но это решение не сработало для меня. Итак, мне нужно решение для решения этой проблемы, где я могу просто отправить doctorId в RequestHeader .

1 Ответ

0 голосов
/ 22 февраля 2020

Код, который вы указали, работает.

Вот пример того, как подготовить и отправить запрос в службу, используя curl:

curl -H "id: 10" http://localhost:8080/api/doctors

Тогда getDoctorById успешно принят doctorId со значением 10.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...