Coders Share – это онлайн-площадка для покупки и продажи проектов и их частей
Воспользоваться сервисом можно по ссылке coders-share-yandexhack.amvera.io
- Размещение собственных проектов на продажу
- Приобретение чужих проектов
- Работа с API
Склонируйте репозиторий:
git clone https://github.com/Tanax-Xt/coders-share.git
Установите необходимые библиотеки:
pip install -r requirements.txt
Создайте .env
файл в корневой директории и создайте следующие переменные окружения (HOST
и PORT
можете поменять на свои):
SECRET_KEY="YOUR_SECRET_KEY"
HOST=localhost
PORT=8080
Запустите app.py
:
python app.py
- Получение ключа
- Работа с API-ключом
- Работа с пользователями
- Работа с проектами
- Работа с языками программирования
Для получения API-ключа зарегистрируйтесь на сайте и перейдите на страницу /developer
. Нажмите на кнопку для генерации ключа. Вы получите ключ доступа к API, состоящий из 32 символов
После получения API-ключа вы можете обращаться к API по следующей схеме:
https://URL/api/your_api_key/data_category
URL
- адрес сайтаyour_api_key
- ваш API-ключdata_category
- необходима категория данных
GET https://URL/api/your_api_key/users
Пример ответа:
{
"users": [
{
"added_date": "2024-04-19 20:57:57",
"email": "ivan@test.com",
"id": 1,
"money": 1000,
"name": "Ivan"
},
{
"added_date": "2024-04-19 21:17:57",
"email": "danila@test.com",
"id": 2,
"money": 0,
"name": "Danila"
},
{
"added_date": "2024-04-19 22:29:38",
"email": "user@test.com",
"id": 3,
"money": 0,
"name": "User"
}
]
}
GET https://URL/api/your_api_key/users/1
Пример ответа:
{
"users": {
"added_date": "2024-04-19 20:57:57",
"email": "USER@MAIL.com",
"id": 1,
"money": 1000,
"name": "USERNAME"
}
}
POST https://URL/api/your_api_key/users
JSON:
{
"password": "USERPASSWORD",
"email": "USER@MAIL.com",
"name": "USERNAME"
}
Ответ:
{"success": "OK"}
При выполнении запроса PUT
с неполным json неуказанные поля наменятся на null
. Доступные поля для изменения запросом: email
, name
PUT https://URL/api/your_api_key/users/1
JSON:
{
"name": "USERNAME_1"
}
Ответ:
{"success": "OK"}
Измененный пользователь:
{
"users": {
"added_date": "2024-04-22 20:36:46",
"email": null,
"id": 1,
"money": 0,
"name": "USERNAME_1"
}
}
PUT https://URL/api/your_api_key/users/1
JSON:
{
"name": "USERNAME_1",
"email": "USER_1@MAIL.com"
}
Ответ:
{"success": "OK"}
Измененный пользователь:
{
"users": {
"added_date": "2024-04-22 20:36:46",
"email": "USER_1@MAIL.com",
"id": 1,
"money": 0,
"name": "USERNAME_1"
}
}
При выполнении запроса PATCH
с неполным json поменяются только те поля, которые были указаны. Доступные поля для изменения запросом: email
, name
PATCH https://URL/api/your_api_key/users/1
JSON:
{
"name": "USERNAME_1"
}
Ответ:
{"success": "OK"}
Измененный пользователь:
{
"users": {
"added_date": "2024-04-22 20:36:46",
"email": "USER@MAIL.com",
"id": 1,
"money": 0,
"name": "USERNAME_1"
}
}
DELETE https://URL/api/your_api_key/users/1
Ответ:
{"success": "OK"}
GET https://URL/api/your_api_key/projects
Пример ответа:
{
"projects": [
{
"about": "test python about",
"added_date": "2024-04-19 21:07:10",
"id": 1,
"is_visible": true,
"language_id": 1,
"price": 1000,
"title": "test python",
"user_id": 1
},
{
"about": "test java script about",
"added_date": "2024-04-19 21:19:55",
"id": 4,
"is_visible": true,
"language_id": 4,
"price": 1000,
"title": "test java script",
"user_id": 2
}
]
}
GET https://URL/api/your_api_key/projects/1
Пример ответа:
{
"projects": {
"about": "PROJECT ABOUT",
"added_date": "2024-04-19 21:07:10",
"id": 1,
"is_visible": true,
"language_id": 1,
"price": 1000,
"title": "PROJECT TITLE",
"user_id": 1
}
}
POST https://URL/api/your_api_key/projects
Добавление проектов через API не предусмотрено. Добавление только через интерфейс
Ответ:
{"message": "Method Not Allowed"}
При выполнении запроса PUT
с неполным json неуказанные поля наменятся на null
. Доступные поля для изменения запросом: title
, about
, language_id
, user_id
, price
, is_visible
PUT https://URL/api/your_api_key/projects/1
JSON:
{
"about": "PROJECT ABOUT NEW",
"title": "PROJECT TITLE NEW"
}
Ответ:
{"success": "OK"}
Измененный проект:
{
"about": "PROJECT ABOUT NEW",
"added_date": "2024-04-21 01:41:07",
"id": 1,
"is_visible": null,
"language_id": null,
"price": null,
"title": "PROJECT TITLE NEW",
"user_id": null
}
PUT https://URL/api/your_api_key/projects/1
JSON:
{
"about": "PROJECT ABOUT NEW",
"title": "PROJECT TITLE NEW",
"is_visible": true,
"language_id": 1,
"price": 1000,
"user_id": 1
}
Ответ:
{"success": "OK"}
Измененный проект:
{
"about": "PROJECT ABOUT NEW",
"added_date": "2024-04-21 01:41:07",
"id": 1,
"is_visible": true,
"language_id": 1,
"price": 1000,
"title": "PROJECT TITLE NEW",
"user_id": 1
}
При выполнении запроса PATCH
с неполным json поменяются только те поля, которые были указаны. Доступные поля для изменения запросом: title
, about
, language_id
, user_id
, price
, is_visible
PATCH https://URL/api/your_api_key/projects/1
JSON:
{
"about": "PROJECT ABOUT NEW"
}
Ответ:
{"success": "OK"}
Измененный проект:
{
"about": "PROJECT ABOUT NEW",
"added_date": "2024-04-21 01:41:07",
"id": 1,
"is_visible": true,
"language_id": 1,
"price": 1000,
"title": "PROJECT TITLE",
"user_id": 1
}
DELETE https://URL/api/your_api_key/projects/1
Ответ:
{"success": "OK"}
GET https://URL/api/your_api_key/languages
Пример ответа:
{
"languages": [
{
"added_date": "2024-04-19 20:57:27",
"id": 1,
"language_sign": "Python",
"language_title": "Python"
},
{
"added_date": "2024-04-19 20:57:27",
"id": 2,
"language_sign": "Java",
"language_title": "Java"
},
{
"added_date": "2024-04-19 20:57:27",
"id": 3,
"language_sign": "C",
"language_title": "С++"
}
]
}
GET https://URL/api/your_api_key/languages/1
Пример ответа:
{
"languages": {
"added_date": "2024-04-19 20:57:27",
"id": 1,
"language_sign": "Python",
"language_title": "Python"
}
}
POST https://URL/api/your_api_key/languages
JSON
{
"language_title": "LANGUAGE TITLE",
"language_sign": "LANGUAGE SIGN"
}
Ответ:
{"success": "OK"}
При выполнении запроса PUT
с неполным json неуказанные поля наменятся на null
. Доступные поля для изменения запросом: language_title
, language_sign
language_title
- Название языка программированияlanguage_sign
- Написания языка программирования. Допустимые символы - все латинские буквы и дефис
PUT https://URL/api/your_api_key/languages/1
JSON:
{
"language_title": "LANGUAGE TITLE NEW"
}
Ответ:
{"success": "OK"}
Измененный язык программирования:
{
"languages": {
"added_date": "2024-04-19 20:57:27",
"id": 1,
"language_sign": null,
"language_title": "LANGUAGE TITLE NEW"
}
}
PUT https://URL/api/your_api_key/languages/1
JSON:
{
"language_title": "LANGUAGE TITLE NEW",
"language_sign": "LANGUAGE SIGN NEW"
}
Ответ:
{"success": "OK"}
Измененный язык программирования:
{
"languages": {
"added_date": "2024-04-19 20:57:27",
"id": 1,
"language_sign": "LANGUAGE SIGN NEW",
"language_title": "LANGUAGE TITLE NEW"
}
}
При выполнении запроса PATCH
с неполным json поменяются только те поля, которые были указаны. Доступные поля для изменения запросом: language_title
, language_sign
language_title
- Название языка программированияlanguage_sign
- Написания языка программирования. Допустимые символы - все латинские буквы и дефис
PATCH https://URL/api/your_api_key/languages/1
JSON:
{
"language_sign": "LANGUAGE SIGN NEW"
}
Ответ:
{"success": "OK"}
Измененный язык программирования:
{
"languages": {
"added_date": "2024-04-19 20:57:27",
"id": 1,
"language_sign": "LANGUAGE SIGN NEW",
"language_title": "LANGUAGE TITLE"
}
}
DELETE https://URL/api/your_api_key/languages/1
Ответ:
{"success": "OK"}