Yesod 용 라이브러리를 구축 중이며 신용 카드 프로세서 인 Stripe 용 인터페이스가 공개됩니다. (곧 출시 할 계획입니다. API가 제대로 문서화되지 않았기 때문에 Amazon에서 포기했습니다 ...)Yesod 경로 구문 분석에 대한 설명
Stripe API에 필요한 경로를 처리하기 위해 하위 사이트와 typeclass를 만들었습니다. 나는 내가해야 할 일의 "방법"을 알아낼 수 있었지만, 나는 그것을 이해하지 못했다.
하위 사이트에 의해 정의 된 경로가 있습니다
mkYesodSubData "Stripe" [parseRoutes|
/charge/#StripeId ChargeR POST
/customer/#StripeId CustomerR POST
|]
를 부모로 정의 경로가 있습니다
/payment/stripe StripeR Stripe appStripe
지금, 나는이 라인은 실제로 무엇을 의미하는지에 대해 궁금합니다.
/questions QuestionsR GET
는 지금까지 내가 이해, 경로 발생기는 QuestionsR
데이터 유형을 생성하고, getQuestionsR
-/questions
를 전달합니다 : 같은 비교를 위해, 대부분의 다른 경로가 정의되어 있습니다. 그러나 정확히 나는 그것이 StripeR
유형을 생성해야 가정
/payment/stripe StripeR Stripe appStripe
로하고 경로 생성기 것입니다. 그리고 저는 그걸 알고 있습니다 appStripe :: App -> Stripe
. 그러나 이러한 일이 어떤 역할을합니까? 구문 분석기는 StripeR
이 Stripe
경로 중 하나를 인수로 사용한다는 것을 어떻게 알 수 있습니까? 배후에서 어떤 일이 벌어지고 있으며, 다른 패턴의 특별한 경우는 GET
입니까?
[Yesod 및 하위 사이트 : no-brainer] (http://monoid.se/haskell/yesod-and-subsites/) ; 및 이것 : [Yesod Book - 하위 사이트 만들기] (http://www.yesodweb.com/book/creating-a-subsite); 그리고 더 깊은 광경을 위해 : Yesod book basics - routing] (http://www.yesodweb.com/book/basics) –
첫 번째 링크가 스팸 메일로 바뀐 것 같습니다. FYI @GabrielRiba – Neikos
@Neikos 죄송합니다. 링크 그러나 재미있는 물건이 거기에 있었다. 아마도 웹 게시자는 인터넷 도메인 이름을 갱신하지 않았을 것입니다. 다음은 오래된 것들입니다 : http://archive.is/20130418103559/monoid.se/haskell/yesod-and-subsites/ –