5.0.1 update

This commit is contained in:
SkrinVex
2026-01-22 21:31:57 +05:00
parent c5f1b352fb
commit 1193b5ccf4
16 changed files with 1271 additions and 142 deletions
+141
View File
@@ -0,0 +1,141 @@
# 🌐 FoxLang FastAPI - Веб-сервер библиотека
FoxLang теперь поддерживает создание веб-серверов в стиле FastAPI через библиотеку `net.fox`.
## 🚀 Быстрый старт
```cpp
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 сервер
```cpp
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 клиент
```cpp
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