Files
2026-01-22 21:31:57 +05:00

4.7 KiB
Raw Permalink Blame History

🌐 FoxLang FastAPI - Веб-сервер библиотека

FoxLang теперь поддерживает создание веб-серверов в стиле FastAPI через библиотеку net.fox.

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

include("src/net.fox");

void main() {
    // Запуск сервера на порту 8080
    start_server(8080);
    
    // Регистрация маршрутов
    register_get("/", "home_handler");
    register_post("/users", "create_user");
    
    print("Server running on http://localhost:8080");
}

// Обработчики
void home_handler() {
    json_response("{\"message\":\"Hello from FoxLang!\"}");
}

void create_user() {
    text_response("User created successfully");
}

main();

📋 API Функции

Управление сервером

Функция Описание Пример
start_server(port) Запускает HTTP сервер на указанном порту start_server(8080);
stop_server() Останавливает сервер stop_server();

Регистрация маршрутов

Функция Описание Пример
register_get(path, handler) Регистрирует GET маршрут register_get("/users", "get_users");
register_post(path, handler) Регистрирует POST маршрут register_post("/users", "create_user");

Отправка ответов

Функция Описание Пример
json_response(json) Отправляет JSON ответ json_response("{\"status\":\"ok\"}");
text_response(text) Отправляет текстовый ответ text_response("Hello World");

HTTP клиент

Функция Описание Пример
api_get(base_url, endpoint) GET запрос к API api_get("http://api.com", "/users");
api_post(base_url, endpoint, data) POST запрос к API api_post("http://api.com", "/users", data);
http_get_simple(url) Простой GET запрос http_get_simple("http://example.com");
post_json(url, json) POST с JSON данными post_json(url, "{\"key\":\"value\"}");

🎯 Примеры использования

Простой API сервер

include("src/net.fox");

void api_status() {
    json_response("{\"status\":\"healthy\",\"version\":\"1.0\"}");
}

void api_users() {
    json_response("{\"users\":[{\"id\":1,\"name\":\"Alice\"}]}");
}

void create_user() {
    text_response("User created with ID: 123");
}

void main() {
    start_server(3000);
    
    register_get("/status", "api_status");
    register_get("/users", "api_users");
    register_post("/users", "create_user");
    
    print("🚀 API Server running on http://localhost:3000");
    print("Endpoints:");
    print("  GET  /status - Health check");
    print("  GET  /users  - List users");
    print("  POST /users  - Create user");
}

main();

HTTP клиент

include("src/net.fox");

void test_external_api() {
    // Тест внешнего API
    string response = api_get("https://jsonplaceholder.typicode.com", "/posts/1");
    print("External API response: " + response);
    
    // Тест локального API
    string local = api_get("http://localhost:3000", "/status");
    print("Local API response: " + local);
}

test_external_api();

🛠 Встроенные функции

Следующие функции доступны на уровне интерпретатора:

  • server_start(port) - Запуск HTTP сервера
  • server_stop() - Остановка сервера
  • route_get(path, handler) - Регистрация GET маршрута
  • route_post(path, handler) - Регистрация POST маршрута
  • send_response(data) - Отправка ответа клиенту

🔧 Технические детали

  • Сервер использует Python HTTP сервер под капотом
  • Поддерживает JSON и текстовые ответы
  • Автоматическая обработка CORS заголовков
  • Простая маршрутизация по пути

📝 Примечания

  • Сервер запускается в фоновом режиме
  • Для остановки используйте stop_server() или Ctrl+C
  • Поддерживаются только GET и POST методы
  • JSON ответы автоматически получают правильный Content-Type