Reputation: 321
I have a trouble calling external api. This is my view:
class TestView(APIView):
def call_api(self, request, *args, **kwargs):
headers = {}
url = 'http://jsonplaceholder.typicode.com/users/'
method = request.method.lower()
method_map = {
'get': requests.get,
'post': requests.post,
'put': requests.put,
'patch': requests.patch,
'delete': requests.delete
}
return Response(method_map[method](url, headers=headers, data=json.dumps(request.data)).json())
def get(self, request, *args, **kwargs):
return self.call_api(request, *args, **kwargs)
def post(self, request, *args, **kwargs):
return self.call_api(request, *args, **kwargs)
def put(self, request, *args, **kwargs):
return self.call_api(request, *args, **kwargs)
def patch(self, request, *args, **kwargs):
return self.call_api(request, *args, **kwargs)
def delete(self, request, *args, **kwargs):
return self.call_api(request, *args, **kwargs)
This is my urls.py:
url(r'^test/(?P<pk>[0-9]+)/$', TestView.as_view()),
How can i update my urls and call_api() to get one of users: test/1/ - go to http://jsonplaceholder.typicode.com/users/1, test/2 - go to http://jsonplaceholder.typicode.com/users//2. Now i have all users in that urls.py. Also i need this for all REST requests. Thanks.
Upvotes: 0
Views: 7130
Reputation: 976
Update your call_api
to
def call_api(self, request, *args, **kwargs):
headers = {}
url = 'http://jsonplaceholder.typicode.com/users/'+args[0]
# args[0] = pk
Upvotes: 1