2013-09-25 2 views
1

저는 Python/Django에 처음 접했지만 하나의 웹 사이트 (siteA.com)에 REST API를 설정했으며 다른 웹 사이트 (siteB.com)가 가능하도록하고 싶습니다 이 API를 호출하고 몇 가지 결과를 표시하십시오. 이를 위해 siteA에 장고 REST 프레임 워크와 Django Auth2 Provider를 추가했습니다. 이것은 내가 원하는 응답을 제공하나의 장고 사이트에서 다른 API 호출로

curl -X POST -d "client_id=CLIENT_ID&client_secret=CLIENT_SECRET&grant_type=password&username=USERNAME&password=PASSWORD" http://www.siteA.com/oauth2/access_token [1] 

: : 지금 액세스 토큰 얻기 위해 컬을 사용하여 API를 호출 할 수있는 액세스 토큰을 사용

{"access_token": "72x63615xe29f4xfdadexbcd77x27b5fx0bceexx", "scope": "read", "expires_in": 86399, "refresh_token": "5fx80dx320cx3abe7d0x27d5f1x64e7x413x0f70"} 

를 내가 얻을 나는 이제 API를 호출 할 수 있습니다 :

curl -v -H "Authorization: Bearer 72x63615xe29f4xfdadexbcd77x27b5fx0bceexx" "http://www.siteA.com/api/?q=SOMESTRING&per_page=3&page=1&sort=random"  [2] 

쿼리 문자열 'SOMESTRING'에 대한 결과가 3 개인 JSON 응답을 제공합니다.

모두 정상적으로 작동하지만 이제는 siteB.com에서 전화를 걸고 싶습니다. 즉, 특정 검색 쿼리로 호출 된 경우 [1]과 같은 액세스 토큰이 있는지 먼저 확인한 다음 검색 결과 [2]를 가져와 JSON 형식으로 표시하는 페이지를 만들고 싶습니다. 나는 그것을 어떻게하는지 모른다. requests_oauth2에서 OAuth2를 사용하려고했지만 단순히 컬 명령문을 파이썬으로 변환하는 올바른 방법을 모릅니다. 어떤 도움이 필요합니까?

+0

urrlib2 메이트를 확인하십시오. –

+0

이전의 코멘트에 오류가 있음을 알 수 있습니다. 그 urllib2하지 urrlib2 : P –

+0

나는 먼저 OAUth 그것을 시도하고 실패한 다음 요청과 함께 그것을 시도했지만 결국 urllib2로 관리. JUst이 세 줄은 대부분의 작업을 수행한다. req = urllib2.Request (url, query_string); file = urllib2.urlopen (req); result = ast.literal_eval (file.read()); ' –

답변

3

siteB.com에서 siteA.com의 API를 노출하려면 django-rest-framework-proxy (좋은 타사 패키지)을 고려하십시오.

siteB.com에서 siteA.com의 API 결과를 일반 HTML 페이지에 삽입하려면 데이터에 대한 API를 누른 다음이를 일반 템플릿 렌더링 방법으로 전달해야합니다. 의견 당 urllib2을 사용할 수 있지만 우수한 Requests을 권하고 싶습니다.

도움이 되었기를 바랍니다.

관련 문제