5.0.1 update
This commit is contained in:
+141
@@ -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
|
||||
Reference in New Issue
Block a user