ПОЛИТИКА ИСПОЛЬЗОВАНИЯ API на Платформе «Все Свои»
г. Краснодар «_____» ___________ 2025 года
1. ОБЩИЕ ПОЛОЖЕНИЯ
1.1. Настоящая Политика использования API (далее — «Политика») определяет правила и условия использования интерфейсов программирования приложений (API) Платформы «Все Свои».
1.2. API предоставляет разработчикам и партнерам программный доступ к функционалу и данным Платформы для интеграции и создания дополнительных сервисов.
1.3. Политика разработана в соответствии с:
2. ОПРЕДЕЛЕНИЯ И ТЕРМИНЫ
2.1. Основные понятия:
2.1.1. API (Application Programming Interface) - набор методов, правил и инструментов для взаимодействия программных компонентов.
2.1.2. Ключ API - уникальный идентификатор, предоставляемый для доступа к API.
2.1.3. Разработчик - физическое или юридическое лицо, использующее API для интеграции с Платформой.
2.1.4. Endpoint (конечная точка)- конкретный URL-адрес API, предоставляющий доступ к определенному функционалу.
3. УСЛОВИЯ ПРЕДОСТАВЛЕНИЯ ДОСТУПА
3.1. Требования к разработчикам:
3.1.1. Для физических лиц:
3.1.2. Для юридических лиц:
3.2. Процедура получения доступа:
3.2.1. Регистрация заявки:
3.2.2. Рассмотрение заявки:
4. ВИДЫ API И ФУНКЦИОНАЛ
4.1. Публичные API:
4.1.1. Каталог товаров:
4.1.2. Информация о продавцах:
4.2. Приватные API:
4.2.1. Управление заказами:
4.2.2. Работа с товарами:
4.2.3. Аналитика и отчетность:
5. ТЕХНИЧЕСКИЕ ТРЕБОВАНИЯ
5.1. Протоколы и форматы:
5.1.1. Основные протоколы:
5.1.2. Форматы данных:
5.2. Ограничения и лимиты:
5.2.1. Rate Limiting:
5.2.2. Размеры данных:
6. ТРЕБОВАНИЯ БЕЗОПАСНОСТИ
6.1. Защита данных:
6.1.1. Конфиденциальность:
6.1.2. Контроль доступа:
6.2. Обязанности разработчиков:
6.2.1. Защита ключей API:
6.2.2. Обработка данных:
7. ИСПОЛЬЗОВАНИЕ И ОГРАНИЧЕНИЯ
7.1. Разрешенное использование:
7.1.1. Коммерческие интеграции:
7.1.2. Некоммерческие проекты:
7.2. Запрещенное использование:
7.2.1. Нарушающее законодательство:
7.2.2. Наносящее ущерб Платформе:
8. МОНИТОРИНГ И КОНТРОЛЬ
8.1. Системы мониторинга:
8.1.1. Технический мониторинг:
8.1.2. Бизнес-мониторинг:
8.2. Процедура проверок:
8.2.1. Плановые проверки:
8.2.2. Внеплановые проверки:
9. ОБНОВЛЕНИЯ И ПОДДЕРЖКА
9.1. Жизненный цикл API:
9.1.1. Версионирование:
9.1.2. Обратная совместимость:
9.2. Техническая поддержка:
9.2.1. Уровни поддержки:
9.2.2. Соглашение об уровне обслуживания - SLA (Service Level Agreement):
10. ОТВЕТСТВЕННОСТЬ И САНКЦИИ
10.1. Меры воздействия:
10.1.1. За нарушения Политики:
10.1.2. За серьезные нарушения:
10.2. Ответственность разработчиков:
10.2.1. За нарушения безопасности:
Приложение 1: Техническая документация API Приложение 2: Формы заявок на доступ к API Приложение 3: Политика безопасности при работе с API
ПРИЛОЖЕНИЕ 1 к Политике использования API ТЕХНИЧЕСКАЯ ДОКУМЕНТАЦИЯ API
1. БАЗОВЫЕ ПАРАМЕТРЫ API
1.1. Эндпоинты и версионирование:
1.1.1. Базовый URL:
https://api.vsesvoi.online/v1/
1.1.2. Поддерживаемые методы HTTP:
1.1.3. Коды ответов:
1.2. Аутентификация:
1.2.1. Заголовки авторизации:
http
Authorization: Bearer {api_key}
Content-Type: application/json
X-API-Key: your_api_key_here
1.2.2. Получение токена доступа:
POST /oauth/token
{
"grant_type": "client_credentials",
"client_id": "your_client_id",
"client_secret": "your_client_secret"
}
2. ОСНОВНЫЕ ЭНДПОЙНТЫ API
2.1. Работа с товарами:
2.1.1. Получение списка товаров:
GET /products
Parameters:
- category_id (optional)
- limit (default: 50)
- offset (default: 0)
- search (optional)
- sort_by (price, name, rating)
2.1.2. Получение информации о товаре:
GET /products/{product_id}
2.1.3. Создание товара:
POST /products
"name": "Название товара",
"description": "Описание товара",
"price": 1000,
"category_id": 1,
"stock_quantity": 10
2.2. Управление заказами:
2.2.1. Получение списка заказов:
GET /orders
- status (pending, confirmed, shipped, delivered, cancelled)
- start_date (YYYY-MM-DD)
- end_date (YYYY-MM-DD)
2.2.2. Создание заказа:
POST /orders
"customer_email": "customer@example.com",
"items": [
"product_id": 123,
"quantity": 2
],
"shipping_address": {
"address": "ул. Примерная, д. 1",
"city": "Краснодар",
"postal_code": "350000"
3. ЛИМИТЫ И ОГРАНИЧЕНИЯ
3.1. Rate Limiting:
3.1.1. Лимиты по типам API:
3.1.2. Заголовки лимитов:
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 999
X-RateLimit-Reset: 1640995200
ПРИЛОЖЕНИЕ 2 к Политике использования API ФОРМЫ ЗАЯВОК НА ДОСТУП К API
1. ФОРМА ЗАЯВКИ ДЛЯ ФИЗИЧЕСКИХ ЛИЦ
Дата подачи: «__» ________ 202____ г.
1.1. Личные данные:
1.2. Информация о проекте:
1.3. Технические данные:
Согласия: [ ] Согласен с Политикой использования API [ ] Согласен на обработку персональных данных [ ] Обязуюсь соблюдать лимиты и ограничения
Подпись: ___________________
2. ФОРМА ЗАЯВКИ ДЛЯ ЮРИДИЧЕСКИХ ЛИЦ
Дата подачи: «__» ________ 202 г.
2.1. Данные организации:
2.2. Контактные лица:
2.3. Бизнес-информация:
2.4. Технические требования:
Подпись руководителя: ___________________ Печать организацииПРИЛОЖЕНИЕ 1 к Политике использования API ТЕХНИЧЕСКАЯ ДОКУМЕНТАЦИЯ API
Подпись руководителя: ___________________ Печать организации
ПРИЛОЖЕНИЕ 3 к Политике использования API ПОЛИТИКА БЕЗОПАСНОСТИ ПРИ РАБОТЕ С API
1. ТРЕБОВАНИЯ К ХРАНЕНИЮ КЛЮЧЕЙ
1.1. Защита учетных данных:
1.1.1. Хранение ключей API:
1.1.2. Передача ключей:
2. ПРОЦЕДУРЫ БЕЗОПАСНОСТИ
2.1. Мониторинг и логирование:
2.1.1. Обязательное логирование:
2.1.2. Алертинг:
2.2. Инцидент-менеджмент:
2.2.1. Действия при компрометации ключа:
2.2.2. Процедура восстановления:
3. РЕКОМЕНДАЦИИ ПО РАЗРАБОТКЕ
3.1. Паттерны разработки:
3.1.1. Обработка ошибок:
3.1.2. Оптимизация запросов:
3.1.3. Пример кода для обработки ошибок:
python
import requests
import time
from typing import Optional
def make_api_request(url: str, api_key: str, max_retries: int = 3) -> Optional[dict]:
headers = {
'Authorization': f'Bearer {api_key}',
'Content-Type': 'application/json'
for attempt in range(max_retries):
try:
response = requests.get(url, headers=headers)
if response.status_code == 200:
return response.json()
elif response.status_code == 429:
# Rate limiting - wait and retry
time.sleep(2 ** attempt) # Exponential backoff
else:
# Log error and break
print(f"API error: {response.status_code}")
break
except requests.exceptions.RequestException as e:
print(f"Request failed: {e}")
time.sleep(2 ** attempt)
return None