Примеры кода
Примеры cURL
Запрос на вход
curl -X POST https://landlordkeeper.com/api/v1/auth/login \
-H "Content-Type: application/json" \
-d '{"email": "[email protected]", "password": "YourPassword123"}'
Получить профиль
curl -X GET https://landlordkeeper.com/api/v1/user/profile \
-H "Authorization: Bearer YOUR_JWT_TOKEN"
Обновить профиль
curl -X PUT https://landlordkeeper.com/api/v1/user/profile \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_JWT_TOKEN" \
-d '{"name": "New Name", "phone": "+380501234567"}'
Примеры JavaScript
Функция входа
// Login and get token
async function login(email, password) {
const response = await fetch('/api/v1/auth/login', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({ email, password }),
});
if (!response.ok) {
throw new Error('Login failed');
}
const data = await response.json();
localStorage.setItem('token', data.token);
return data.token;
}
Хелпер для аутентифицированных запросов
// Make authenticated request
async function apiRequest(endpoint, options = {}) {
const token = localStorage.getItem('token');
const response = await fetch(`/api${endpoint}`, {
...options,
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${token}`,
...options.headers,
},
});
if (response.status === 401) {
// Token expired - redirect to login
localStorage.removeItem('token');
window.location.href = '/login';
return;
}
return response.json();
}
// Usage
const profile = await apiRequest('/user/profile');
console.log(profile);
Примеры PHP
Использование Guzzle HTTP клиента
<?php
use GuzzleHttp\Client;
$client = new Client(['base_uri' => 'https://landlordkeeper.com']);
// Login
$response = $client->post('/api/v1/auth/login', [
'json' => [
'email' => '[email protected]',
'password' => 'YourPassword123',
],
]);
$data = json_decode($response->getBody(), true);
$token = $data['token'];
// Get profile
$response = $client->get('/api/v1/user/profile', [
'headers' => [
'Authorization' => 'Bearer ' . $token,
],
]);
$profile = json_decode($response->getBody(), true);
print_r($profile);
Примеры Python
Использование библиотеки requests
import requests
BASE_URL = "https://landlordkeeper.com"
# Login
response = requests.post(f"{BASE_URL}/api/v1/auth/login", json={
"email": "[email protected]",
"password": "YourPassword123"
})
token = response.json()["token"]
# Get profile
headers = {"Authorization": f"Bearer {token}"}
response = requests.get(f"{BASE_URL}/api/v1/user/profile", headers=headers)
profile = response.json()
print(profile)
# Update profile
response = requests.put(
f"{BASE_URL}/api/v1/user/profile",
headers=headers,
json={"name": "New Name"}
)
print(response.json())
Типичный рабочий процесс
Вот типичный рабочий процесс использования API:
1
Зарегистрируйтесь или войдите
Создайте новый аккаунт или войдите с существующими данными для получения JWT-токена.
2
Сохраните токен
Сохраните JWT-токен в безопасном месте вашего приложения (localStorage, защищённый cookie и т.д.).
3
Выполняйте API-запросы
Включайте токен в заголовок Authorization для всех защищённых эндпоинтов.
4
Обрабатывайте истечение токена
При получении ошибки 401 перенаправьте пользователя на страницу входа для получения нового токена.