도우미 메서드를 정의하는 또 다른 이유는 이 작업을 처리하는 방법을 필요할 때 마음대로 변경하고 싶기 때문입니다. 코드의 마지막 줄에서 하드코딩된 상대 경로인 "reservations"를 사용하여 PostAsync를 호출하는데, 이는 예약 리소스가 https://api.example.com/reservations와 같은 URL에 있음을 의미합니다. 하지만 이 URL 자체가 API 계약의 일부가 되는 것은 바라지 않을 겁니다.
게시된 URL 템플릿으로 HTTP API를 작성할 수는 있지만, 계약을 위반하지 않고 API를 변경하기는 어렵기 때문에 REST가 될 수 없습니다[2]. 클라이언트가 문서화된 URL 템플릿을 요구하는 형태의 API의 경우 HTTP 요청 메서드는 사용할 수 있지만, 하이퍼미디어 제어는 사용할 수 없습니다19.
지금 당장 하이퍼미디어 제어(예 링크)를 사용하기에는 처리해야 할 것이 너무 많기 때문에, 나중에 변경할 권한을 확보하기 위해 SUT20 캡슐화[66]를 통해 서비스의 상호작용을 캡슐화해둘 수 있습니다.
예제 4-8에서 또 하나 이야기할 부분은, 4.2.3절에서 설명했던 것처럼 Uri 객체 사용을 요구하는 코드 분석 규칙을 꺼놨다는 점입니다.