我正在使用postman
来访问我的API。我有一个关于通过邮递员params
发送查询参数的问题。在我的API中,我使用services = request.GET.get('services')
来获取参数,然后返回服务的响应。
我的问题是,如果有多个服务,例如“ A”,“ B”,“ C”,那么我们如何使用邮递员在参数中发送这些服务?
views.py
class SomeAPIView(ModelViewSet):
def get_queryset(self):
services = self.request.GET.get('services')
print(services) # getting services
print(type(services)) #type is string
response_list = []
for service in services:
result = API(service=service)
response_list.append(result)
return response_list
我想要获取服务列表,然后遍历该列表以返回对该服务的响应。
答案 0 :(得分:0)
这取决于您在生产中如何使用此API条目。
首先,在django中,好的方法是使用request.query_params
获取查询参数。另外,您必须为get()
方法提供默认值,以免在未传递“服务”参数的情况下发生异常。
然后,如果您的服务参数包含某些对象的名称或ID,则可以将其与GET请求中的参数一起以http://someurl?services=A,B,C的形式传递,或在邮递员中名为“ Params”的标签中传递。因此request.query_params.get('sevices', '')
将返回包含'A,B,C'的字符串。现在您可以将其拆分为',例如services_names = str.split(',')
。
无论如何,GET请求的参数只能返回str
值。
根据您的示例,它可能类似于:
class SomeAPIView(ModelViewSet):
def get_queryset(self):
services = self.request.query_params.get('sevices', '').split(',')
print(services) # getting services
print(type(services)) # now it will be List[str]
response_list = []
for service in services:
result = API(service=service)
response_list.append(result)
return response_list