2013-05-16 3 views
2

이의 우리가 편안하고 API 메소드가 있다고 가정 해 봅시다 링크 :

POST /people 
{ 
    "name" : "John", 
    "_links" : { 
     "address" : { 
      "href" : "/addresses/2" 
     } 
    } 
} 

당신은 address가 다른 리소스에 대한 링크를 가지고 있음을 알 수있다. ,

  1. 브레이크까지 URL을하고

  2. 심지어 자체에 컬 요청을 경로의 "ID"부분을 식별 :

    는해야 서버, 해당 자원의 address_id를 해결하려면 그 링크 된 자원의 address_id을 얻기 위해서?

+0

적절한 방법을 묻는 중입니까? 어느 관점에서? – filip26

답변

1

나는 당신이 아마처럼, 그 # 2가 수행해야하는 방식이며, # 1은 내부 지식을 바탕으로 단지 해킹, 생각합니다. 클라이언트가 절대 URI 인 href를 보낸 경우 http://yoursite.com/addresses/2 여전히 # 1을 사용하고 ID를 감지하려고합니까?
사이트가 정의되고 문서화 된 MIME 유형을 사용하여 주소 자원 표현을 보내는 것으로 가정합니다. 클라이언트가 해당 형식의 응답을 반환하는 타사 URI를 가리키는 href 값을 보내고이를 지원한다고 가정하면 어떻게 될까요? 어쨌든 # 2를 구현해야합니다. 그 경우에는 이 아니라면이 아닌 다른 이유 (성능이 주된 것이기 때문)가 있습니다.

솔직하게 말해 # 2에 대한 필요성이 생길 때까지 # 1로가는 것이 좋습니다.

+0

소리가 적당합니다. 앱이 HTTP를 통해 "자체"와 대화해야하는 경우가 많습니다. Twitter.com과 같은 기본 API를 기반으로 구축 된 앱이 HTTP를 통해 자신을 호출하면 어떤 아이디어가 있습니까? – eoinoc

+1

많은 클라이언트 - 서버 응용 프로그램 (대부분 멀티 플레이어 게임을 생각하고 있습니다)은 TCP/IP를 통해 localhost와 대화합니다. 최신 OS는 네트워킹 스택을 단락 시키며, IPC 소켓만큼 좋은 것을 얻습니다. Apache 앞에서 Nginx 나 Lighttpd와 같은 가벼운 역 프록시를 사용하면 HTTP 비용의 대부분이 무효화되지만, 한 프로세스에서 모든 것을 수행하는 것보다 IPC 패널티를 지불해야합니다. 이점은 "데이터 요청"을 처리 할 수있는 코드 경로가 하나 밖에 없다는 것입니다. –