2014-01-30 2 views
0

내 질문에 매우 간단합니다, 나는 그것에 RESTful API를 가지고있는 응용 프로그램 (Ruby on Rails BTW에서)을 디자인하고 있습니다.RESTful API 리소스 - 이미지 다운로드

응용 프로그램을 디자인하는 동안 "이미지 다운로드"라는 자원에 문제가 생겼습니다.

나는 2 옵션을 발견

  1. ImagesController라는 이름의 컨트롤러와 실제로 다운로드 할 파일을 반환하는 show 액션을 가지고

  2. 는 컨트롤러가 ImageDownloadsController과 이름 적이 (GET 요청). 액션을 만드세요! (POST 요청)

두 번째를 선택하는 이유는 나를 위해 이미지 컨트롤러 wo uld는 이미지 URL이 브라우저에 표시되도록하거나 이미지가있는 템플리트를 이미 반환하는 것이 좋습니다.

또한 API를 디자인 할 때 내 애플리케이션의 대부분과 일치하는 것이 더 쉽고 더 합리적이라고 생각합니다. 내 뜻은 API가 내 APP에서 설계 한 API에 충실하다는 것입니다. 따라서 API의 컨트롤러 동작은 APP의 동작과 거의 일치합니다.

내 ImageController # show에 대한 내 APP가 파일을 반환하고 내 API에서 URL을 반환한다는 것이 디자인 상 문제가 될 수 있다고 생각합니다.

대신 내 APP에서 ImageDownloadsController라는 컨트롤러를 만들고 싶습니다. 여기서 create가 파일을 반환합니다. 그리고 내 API에서 ImagesController는 show가 url을 반환합니다! 나는 아직도 자원을 위해 이름 ImageDownload를 좋아하지 않는다!

나는이 문제에 대한 귀하의 의견을 듣고 싶습니다. 가능한 경우 한 가지 옵션이 다른 것보다 더 낫다고 생각하는 이유는 무엇입니까?

답변

1

기대하는 관점에서 볼 때 REST API를 사용하여 해당 동사를 사용하면 이미지를 가져올 것으로 예상되는 클라이언트를 맹목적으로 (RTM없이) 개발할 수 있습니다. 이는 일반적으로 사용되는 방식이기 때문입니다.

이제 귀하의 경우 앱 컨트롤러와 일치하도록 편차가 있습니다. 특히 REST API 서비스를 사용할 유일한 사람이라면 특히 그렇습니다.하지만 REST API를 지속적으로 사용하려면 다른 사람들이 클라이언트를 개발한다면 첫 번째 솔루션을 선택하게 될 것입니다.

1

여러분의 API를 누가 사용할 것인지에 달려 있다고 생각합니다.

  • 내부 팀에서 API를 사용하는 경우 테스트하고 응용 프로그램 아키텍처와 일관성이있는 솔루션으로 이동하십시오.
  • API가 공개되면 API를 "개발자 용 GUI"로 간주하여 최대한 사용 가능하도록 만들어야합니다. 이를 달성하는 가장 좋은 방법 중 하나는 사용성 연구를 수행하는 것입니다. 즉, API를 처음 접하는 다른 개발자에게 이미지 다운로드시 사용할 메소드를 요청하십시오.

BTW, 나는 Kay Tsar와 동의합니다 - 이미지를 다운로드 한 경우 "GET"방법을 사용합니다.