Полезные API сервисы (обновляется)

Очень часто возникает ситуация, когда требуется получить данные о чем-либо. Например о погоде или еще о чем-нибудь. В этом нам помогают различные API сервисы, которые по нашему запросу отдают нужную нам информацию в JSON (и не только). В процессе работы над разными проектами, я сохраняю для себя сервисы, с которыми удобно и полезно работать.

Обратите внимание! Несмотря на то, что подобные сервисы иногда могут сэкономить много времени — пользоваться ими стоит только в крайних случаях. И дело не в ограниченном кол-ве обращений к API. Дело в том, что ваш проект становится зависим от сторонних сервисов. Старайтесь избегать подобной практики!

  1. http://restcountries.eu/  Это бесплатный RESTful API сервис с подробной информацией о странах. Отдает результат в JSON. Поддерживает фильтрацию ответа, например: https://restcountries.eu/rest/v2/{service}?fields={field};{field};{field}
  2. https://openweathermap.org/api Сервис отдает данные о погоде по переданным параметрам. Тут есть и платный, и бесплатный аккаунты. Это не REST сервис, но все также достаточно просто. Как и предыдущий сервис — поддерживает фильтрацию ответа, например: api.openweathermap.org/data/2.5/weather?q=London,uk. Для работы с этим сервисом Вам необходимо будет пройти регистрацию и получить API Key, который необходимо передавать при каждом запросе, например: openweathermap.org/data/2.5/weather?q=London,uk&appid=b1b15e88fa797225412429c1c50c122a1 В отличии от предыдущего, этот сервис позволяет получать ответ не только в JSON, но и в XML и даже в HTML. Для XML: api.openweathermap.org/data/2.5/weather?q=London&mode=xml
  3. https://www.ipify.org/ Если вам необходимо получить свой IP — этот сервис то, что нужно. Плюс этого сервиса в том, что он может вернуть вам ответ в нескольких вариантах. Первый — просто ip. Второй — в формате JSON. Для первого варианта, достаточно отправить GET запрос на этот адрес: https://api.ipify.org. Ответом будет вам ip, что-то вроде такого 93.79.84.100. Чтобы получить ip в формате JSON, отправляем GET запрос такого вида: https://api.ipify.org?format=json В таком случае ответ будет таким
    {"ip":"72.229.28.185"}
  4. https://freegeoip.net/ Этот сайт хорошо использовать в связке с предыдущим, так как он отдает информацию по переданному ip. Запрос такого вида: freegeoip.net/json/72.229.28.185 вернет вам следующую информацию:
    {
      "ip": "72.229.28.185",
      "country_code": "US",
      "country_name": "United States",
      "region_code": "NY",
      "region_name": "New York",
      "city": "New York",
      "zip_code": "10036",
      "time_zone": "America/New_York",
      "latitude": 40.7605,
      "longitude": -73.9933,
      "metro_code": 501
    }

    Поддерживает несколько типов ответа: cvs, xml, json и jsonp. Вместо ip можно передавать и хост сайта, например google.com или любой другой. freegeoip.net/{csv/xml/json/jsonp}/{ip/host}

  5. https://avatars.dicebear.com/ Если Вам необходимо сгенерировать аватарку для пользователя — этот сайт предоставляет широкий функционал для этой задачи. Пользоваться им весьма удобно, достаточно в тег img (или любой в котором вы выводите аватарку для пользователя) прописать API этого сервиса. Например: https://avatars.dicebear.com/v2/male/johndoe.svg . Этот сайт сохранит аватарку для указанного имени и всегда будет отдавать только ее.