Как отправить GET запрос в API - PullRequest
       0

Как отправить GET запрос в API

0 голосов
/ 26 сентября 2018

Сводка: у меня есть доска объявлений, пользователь ищет почтовый индекс, и отображаются все работы, соответствующие этому почтовому индексу, я пытаюсь добавить функцию, которая позволяет вам просматривать работы в радиусе определенной мили от этого почтового индекса.Существует веб-API (www.zipcodeapi.com), который выполняет эти вычисления и возвращает почтовые индексы в пределах указанного радиуса, я просто не уверен, как его использовать.

Используя www.zipcodeapi.com, вы вводитепочтовый индекс и расстояние, и он возвращает все почтовые индексы в пределах этого расстояния.Формат запроса API выглядит следующим образом: https://www.zipcodeapi.com/rest/<api_key>/radius.<format>/<zip_code>/<distance>/<units>, поэтому, если пользователь введет почтовый индекс '10566' и расстояние 5 миль, формат будет https://www.zipcodeapi.com/rest/<api_key>/radius.json/10566/5/miles, и будет возвращено:

{
    "zip_codes": [
        {
            "zip_code": "10521",
            "distance": 4.998,
            "city": "Croton On Hudson",
            "state": "NY"
        },
        {
            "zip_code": "10548",
            "distance": 3.137,
            "city": "Montrose",
            "state": "NY"
        }
        #etc...
    ]
}

Мой вопрос заключается в том, как отправить запрос GET в API с помощью django?У меня есть пользовательский почтовый индекс, который хранится в zip = request.GET.get('zip'), а радиус мили - в mile_radius = request.GET['mile_radius'].Как я могу включить эти два значения в соответствующие места в https://www.zipcodeapi.com/rest/<api_key>/radius.<format>/<zip_code>/<distance>/<units> и отправить запрос?Можно ли это сделать с помощью Django или я все это перепутал?Это должно быть сделано с языком интерфейса?Я пытался найти это в Google, но найти это только для RESTful APIS, и я не думаю, что это то, что я ищу.Заранее спасибо за любую помощь, если вы не могли сказать, что я никогда раньше не работал с веб-API.

1 Ответ

0 голосов
/ 27 сентября 2018

Вы можете использовать пакет requests, чтобы делать именно то, что вы хотите.Это довольно просто и имеет хорошую документацию.Вот пример того, как вы могли бы выполнить это для вашего случая:

zip_code = request.GET.get('zip')
mile_radius = request.GET['mile_radius']
api_key = YOUR_API_KEY
fmt = 'json'
units = 'miles'
response = requests.get(
    url=f'https://www.zipcodeapi.com/rest/{api_key}/radius.{fmt}/{zip_code}/{mile_radius}/{units}')
zip_codes = response.json().get('zip_codes')

zip_codes должен быть массивом с этими диктовками, как в вашем примере.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...