2012-10-24 8 views
4

Grape을 사용하여 하이퍼 미디어 기반 API를 구현하려는 중입니다. 포도는 모든 관련 하이퍼 미디어를 제공하기위한 적절한 장소 인 것처럼 보이는 인 발표자 (엔티티)를 지원합니다.Grape (또는 Sinatra)로 하이퍼 미디어 기반 API 구현

내가 사용할 수있는 Rails 라우터가 있다면 간단히 귀로 경로를 선택하고 발표자 로직으로 던집니다. 예 (ROAR 방식)의 경우 : 그들은 아무 이름이나 article_url에 가까운 별칭이 없기 때문에

link :self do 
    article_url(self) 
end 

그러나 포도 자체는 루트에 쉽게 액세스를 제공하지 않습니다.

누구나 포도 또는 시나트라에서 비슷한 문제가 발생 했습니까? 자원 링크를 노출시키는 명확하고 간단한 방법이 있습니까?

+0

나는 또한이 작업을 수행하는 가장 좋은 방법을 연구하고있어, 그것이 비록 포도 가능하다고 생각하지 않습니다. U는 [this] (https://github.com/apotonick/webmachinelovesroar/blob/master/server.rb)와 같은 웹 머신과 포효를 결합 할 수 있습니다. – Yeggeps

+0

이것은 포도에 대한 가치있는 기능 요청이라고 생각합니다. 문제를 자유롭게 열어서 정교하게 작성하십시오. 이와 같은 경로 도우미 세트를 추가 할 수 있습니다. –

답변

1

이것은 가능하지만 Rails URL 도우미와 같이 간단하지는 않습니다. https://github.com/intridea/grape#describing-and-inspecting-an-api에서

는 :

TwitterAPI::versions # yields [ 'v1', 'v2' ] 
TwitterAPI::routes # yields an array of Grape::Route objects 
TwitterAPI::routes[0].route_version # yields 'v1' 
TwitterAPI::routes[0].route_description # etc.