1
네임 스페이스 + 리소스 + 컬렉션을 사용하는 것이 성냥 사용과 어떻게 다른가요?레일 경로 : namespace + resource + collection vs match
예를 들어, 일부 엔드 포인트에 대해 모든 HTTP 메소드를 처리하려고한다고 가정하십시오. 여기
namespace :webhooks do
resources :some_service, only: :none do
collection do
get :some_action
post :some_action
put :some_action
patch :some_action
delete :some_action
end
end
end
# Compare to
match '/webhooks/some_service/some_action', to: 'webhooks/some_service#some_action', via: :all
는
rake routes
에 따라 관련 경로입니다, 내가 다른 통해 하나의 방법을 선호해야하는 이유가 추론 라인 카운트 게다가
Prefix Verb URI Pattern Controller#Action
some_action_webhooks_some_service_index GET /webhooks/some_service/some_action(.:format) webhooks/some_service#some_action
POST /webhooks/some_service/some_action(.:format) webhooks/some_service#some_action
PUT /webhooks/some_service/some_action(.:format) webhooks/some_service#some_action
PATCH /webhooks/some_service/some_action(.:format) webhooks/some_service#some_action
DELETE /webhooks/some_service/some_action(.:format) webhooks/some_service#some_action
webhooks_some_service_some_action /webhooks/some_service/some_action(.:format) webhooks/some_service#some_action
입니까?
[이 질문에 대한 답변] (http://stackoverflow.com/questions/2441962/what-is-restful-routing)은 편안한 결과 라우팅을 위해 다른 HTTP 메소드와 URL을 조합하여 사용하는 것이 좋습니다. 그렇다면 위의 두 예제가 모두 안정적이라고 생각합니다. 엔드 포인트에 리소스가 있다고 가정 해 보겠습니다. : all '을 사용하면 책 만들기, 책 업데이트, 책 삭제와 같은 작업을 할 수 있습니다 (만약 당신이이 책을 사용한다면'match '/ api/library/book' 적절한 HTTP 메소드, 그렇지 않으면 405 응답을 얻음). 'resources' 메소드는 지금 사용하는 것이 더 낫지가? – Dennis
이 경우 나는 두 가지 방법으로 잘못된 점을 전혀 볼 수 없습니다. match가 정확히 이루어지기 때문에 ressources dsl을 non-restfull 라우트에 사용하는 것은 다소 번거로운 일입니다. 그러나 'match'는 간단한 빌딩 블록이며 더 우아하게 정의 할 수 있다면 restfull 라우트에 사용하는 것이 좋습니다. 그러나 누군가는 또한이 경우에 ressource dsl을 사용하는 것이 더 명확하고 따라서 resfull ressouce를 가지고 있음을 나타내는 자체 문서화 된 코드라고 주장 할 수 있습니다. –
좋은 지적. 리소스 DSL이 분명히 더 명확하고 일치하는 라이너와 비교하여 명확한 의도를 제시한다고 생각합니다. 특정 HTTP 메소드를 지원하지 않으면 DSL 리소스를 사용할 때 해당 동사 옆에있는 인라인 주석 (예 : # 405)을 사용하여 말할 수 있습니다. – Dennis