0
제목에서이를 요약합니다. 내 모든 응답에 헤더를 스냅에 추가하고 싶습니다. 내가 좋아하는 내 경로의 각각에 대해 modifyRequest 처리기를 추가 할 수 있습니다 : 나는 100 개 가지 경로를 가지고 있고 그들 모두에 헤더를 추가하려면 이제스냅 프레임 워크의 모든 응답에 헤더를 추가하십시오.
apiRoutes :: [(ByteString, Handler b Api())]
apiRoutes = [("status", addHeader)]
addHeader :: Handler b Api()
addHeader = do
modifyResponse (setHeader "Content-Type" "application/json")
otherHandler
otherHandler :: Handler b Api()
otherHandler = metod Get doActualStuff <|> metod Get doMoreActualStuff
. 나는 모든 경로에 대한 인터셉터 함수를 작성해야한다. 헤더를 변경하려면 100 개의 모든 인터셉터 기능을 수정해야합니다.
간단한 간단한 방법이 있습니까?
이것은 매우 짧고 단순합니다. 이 접근법의 문제점은 정확히 무엇입니까? – jkeuhlen
@jkeuhlen은 100 개의 다른 경로가 있다고 가정하고 그들 모두에 헤더를 추가하려고합니다. 나는 모든 경로에 대한 인터셉터 함수를 작성해야한다. 머리글을 변경하려면 100 개의 모든 기능을 수정해야합니다. –
스냅에 익숙하지는 않지만'apiRoutes = map (second (modifyResponse ... *))) [("status", otherHandler)]'를 정의 할 수는 없습니까? – sjakobi