передать параметр запроса как словарь со многими значениями в почтальоне - PullRequest
0 голосов
/ 08 февраля 2019

Я использую 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

Я хочу получить список служб, а затем выполнить итерацию по этому списку, чтобы вернуть ответ для этогосервис. * * 1013

1 Ответ

0 голосов
/ 08 февраля 2019

Это зависит от того, как вы будете использовать эту запись API в рабочей среде.

Сначала хороший способ в django - использовать request.query_params для получения параметров запроса.Также вы должны указать значение по умолчанию для метода get(), чтобы избежать исключений, если не передан параметр 'services'.

Затем, если ваш параметр services содержит имена или идентификаторы некоторых объектов, вы можете просто передать его с параметрамив запросе 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...