Почему Uplink стал популярным? Uplink — это новая альтернатива HTTP-клиенту в Python.

Uplink — это библиотека Python, которая предоставляет простой способ определения и использования веб-API. Это позволяет нам определять интерфейсы API как классы Python, что упрощает их использование и понимание. Uplink построен на основе популярной библиотеки requests, поэтому он надежен и эффективен.

Он был создан Томом Кристи, который также создал фреймворк Django REST. Первая версия Uplink была выпущена в 2017 году. С тех пор она претерпела несколько крупных обновлений и улучшений. Сейчас библиотека имеет версию 0.9.7, выпущенную в марте 2023 года.

Преимущества восходящего канала

Простое использование API. Uplink предоставляет простой и понятный способ использования веб-API в Python. Определив интерфейсы API как классы Python, мы можем легко взаимодействовать с API, не беспокоясь о деталях HTTP низкого уровня.

Повышение производительности. Uplink может помочь повысить нашу производительность за счет сокращения объема стандартного кода, который нам нужно написать для использования API. Он заботится о таких деталях, как обработка HTTP-запросов/ответов и сериализация/десериализация данных.

Гибкость. Uplink — это гибкая библиотека, которую можно использовать с любым веб-API, предоставляющим интерфейс RESTful. Мы можем определить интерфейсы API с таким количеством или меньшим количеством конечных точек, как нам нужно, и мы можем использовать любой из методов HTTP (GET, POST, PUT, DELETE) для взаимодействия с ними.

Тестируемость. Поскольку интерфейсы API определены как классы Python, мы можем легко протестировать их с помощью стандартных инструментов тестирования Python, таких как unittest или pytest. Это упрощает написание автоматических тестов для наших интеграций API.

Взаимозаменяемость. Uplink создан на основе популярной библиотеки запросов, поэтому он отлично сочетается с другими библиотеками Python, использующими запросы. Например, мы можем использовать Uplink в сочетании с популярной библиотекой Pandas для создания фреймов данных из ответов API.

Асинхронное программирование. Одной из основных особенностей Uplink является поддержка асинхронного программирования с использованием синтаксиса async/await. Это позволяет разработчикам создавать эффективные и масштабируемые HTTP-клиенты, которые могут обрабатывать большое количество запросов, не блокируя цикл обработки событий.

Другое. Uplink также предоставляет ряд других полезных функций, включая поддержку аутентификации, перехватчиков запросов и ответов, а также автоматическую сериализацию и десериализацию данных в различных форматах, таких как JSON и XML.

Установить

Чтобы использовать Uplink, нам сначала нужно установить его с помощью pip:

pip install uplink

Простой пример

В этом примере мы определяем интерфейс API для гипотетического API управления пользователями. Класс uplink.Consumer используется для создания интерфейса API. Метод __init__ инициализирует HttpClient базовым URL-адресом API.

Каждый из оставшихся методов соответствует конечной точке API, а метод HTTP указывается с помощью одного из декораторов @uplink. Параметр пути {user_id} указывается с помощью фигурных скобок в URL-адресе, а соответствующий параметр метода используется для замены значения во время выполнения.

import uplink

class MyAPI(uplink.Consumer):
    def __init__(self):
        super().__init__(base_url="https://api.example.com")

    @uplink.get("/users/{user_id}")
    def get_user(self, user_id):
        pass

    @uplink.post("/users")
    def create_user(self, data):
        pass

    @uplink.put("/users/{user_id}")
    def update_user(self, user_id, data):
        pass

    @uplink.delete("/users/{user_id}")
    def delete_user(self, user_id):
        pass

После того, как мы определили наш API-интерфейс, мы можем создать его экземпляр и использовать его для выполнения HTTP-запросов:

api = MyApi(base_url="https://api.example.com")
response = api.get_user(user_id=123)
user_data = response.json()

Если вы хотите прочитать его официальную документацию, она доступна здесь.

— — —

Почему разработчик Python использует Uplink для своего HTTP-клиента?

Потому что они хотят поднять свой код на более высокий уровень!

🙂🙂🙂