Skip to main content

Библиотека для упрощения работы с серверной (Flask) и клиентской (requests) частями API

Project description

markdown

NiceServerAPI

NiceServerAPI — это простая библиотека на Python, которая позволяет легко создавать серверные и клиентские приложения. Сервер строится на Flask, а клиент использует requests для взаимодействия. Вы пишете обычные Python-функции, а библиотека обрабатывает маршруты и запросы за вас!

Установка

Установите библиотеку через pip:

pip install nice-server-api

Зависимости Python >= 3.6

flask>=2.0.0

requests>=2.25.0

Быстрый старт

  1. Создание сервера Создайте файл, например, server_app.py.

Определите функции для обработки запросов, используя декоратор @server.route(url).

Запустите сервер.

Пример файла server_app.py: python

from nice_server_api import NiceServer

Создаем сервер на порту 5000

server = NiceServer(port=5000)

Определяем функцию для маршрута

@server.route("/hello") def hello(url, name="Guest"): return f"Hello, {name} from {url}!"

@server.route("/add") def add(url, a=0, b=0): return int(a) + int(b)

Запускаем сервер

server.run()

Что происходит: Создается сервер на порту 5000.

Функция hello доступна по адресу /hello (например, http://localhost:5000/hello?name=Alex).

Функция add складывает два числа, переданных через запрос (например, http://localhost:5000/add?a=2&b=3 или POST с JSON {"a": 2, "b": 3}).

Аргумент url автоматически передается библиотекой, чтобы вы могли использовать его в логике.

  1. Создание клиента Создайте файл, например, client_app.py.

Используйте NiceClient для подключения к серверу.

Вызывайте функции сервера через server.connect(function_name, *args, **kwargs).

Пример файла client_app.py: python

from nice_server_api import NiceClient

Создаем клиент, указывая адрес сервера

server = NiceClient("http://localhost:5000")

Вызываем функции на сервере

print(server.connect("hello", name="Alex")) # Вывод: {'result': 'Hello, Alex from /hello!', 'status': 'success'} print(server.connect("add", 2, 3)) # Вывод: {'result': 5, 'status': 'success'} print(server.connect("add", a=10, b=20)) # Вывод: {'result': 30, 'status': 'success'}

Что происходит: Клиент подключается к серверу по адресу http://localhost:5000.

server.connect("hello", name="Alex") отправляет POST-запрос с JSON {"name": "Alex"} к /hello.

server.connect("add", 2, 3) отправляет GET-запрос с параметрами arg0=2&arg1=3 к /add.

server.connect("add", a=10, b=20) отправляет POST-запрос с JSON {"a": 10, "b": 20} к /add.

Как это работает Сервер Инициализация: Создайте объект NiceServer(port) с нужным портом.

Маршруты: Используйте декоратор @server.route(url) для определения функций. Функции принимают: url: Путь маршрута (автоматически передается библиотекой).

Прочие параметры: Извлекаются из GET (query-параметры) или POST (JSON) запросов.

Запуск: Вызовите server.run() для запуска.

Клиент Инициализация: Создайте объект NiceClient(server_address) с адресом сервера (например, http://localhost:5000).

Вызов функций: Используйте server.connect(function_name, *args, **kwargs): function_name: Имя маршрута/функции (например, "hello" для /hello).

*args: Позиционные аргументы — отправляются как GET-параметры (arg0, arg1, ...).

**kwargs: Именованные аргументы — отправляются как JSON в POST-запросе.

Ответ: Возвращается словарь с ключами: result: Результат выполнения функции.

status: "success" или "error".

error: Текст ошибки, если что-то пошло не так.

Примеры Пример 1: Приветствие Сервер (server_app.py): python

from nice_server_api import NiceServer

server = NiceServer(port=5000)

@server.route("/greet") def greet(url, user="User"): return f"Welcome, {user}, to {url}!"

server.run()

Клиент (client_app.py): python

from nice_server_api import NiceClient

server = NiceClient("http://localhost:5000") print(server.connect("greet", user="Alice")) # {'result': 'Welcome, Alice, to /greet!', 'status': 'success'}

Пример 2: Калькулятор Сервер (server_app.py): python

from nice_server_api import NiceServer

server = NiceServer(port=5000)

@server.route("/multiply") def multiply(url, x=1, y=1): return int(x) * int(y)

server.run()

Клиент (client_app.py): python

from nice_server_api import NiceClient

server = NiceClient("http://localhost:5000") print(server.connect("multiply", 4, 5)) # {'result': 20, 'status': 'success'} print(server.connect("multiply", x=3, y=7)) # {'result': 21, 'status': 'success'}

Советы Запуск сервера: Запускайте сервер в одном терминале (или PyCharm Run), а клиент — в другом.

Обработка ошибок: Если функция на сервере вызывает ошибку, клиент получит {"error": "текст_ошибки", "status": "error"}.

Расширение: Добавляйте свои функции с любыми параметрами, библиотека автоматически обработает запросы.

Лицензия MIT License Поддержка Репозиторий: https://github.com/твой_пользователь/nice-server-api

Сообщения об ошибках: https://github.com/твой_пользователь/nice-server-api/issues

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nice_server_api-0.1.0.tar.gz (6.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nice_server_api-0.1.0-py3-none-any.whl (6.7 kB view details)

Uploaded Python 3

File details

Details for the file nice_server_api-0.1.0.tar.gz.

File metadata

  • Download URL: nice_server_api-0.1.0.tar.gz
  • Upload date:
  • Size: 6.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.4

File hashes

Hashes for nice_server_api-0.1.0.tar.gz
Algorithm Hash digest
SHA256 9d480afa39fc82e7ed5927b1c0eb5b6d34a59f95c992d15443c33066bb8d5607
MD5 0138e20a749b52b41bec4340289ab3fc
BLAKE2b-256 b03d7fdf90c4c8360a106d17ca400263f95ce5bb583518c078101fac70d9b814

See more details on using hashes here.

File details

Details for the file nice_server_api-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for nice_server_api-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fe9ce48c162b9384c428db941eca519dd2f8eff748c399dd0353f1fe8d4db4b9
MD5 594d34a95d00852a079ef1bfc9e42f1a
BLAKE2b-256 c0cc3fd43118680a6403317384ab49e36e540985a86f0725aa94fc913c0d387c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page