- Знакомство с проектом
- Настройка проекта
- Написать REST API отдающий статический JSON (ДЗ: API end-point update)
- Получить (AJAX) и отобразить данные (JS + HTML) на клиенте
- Отрендерить шаблоны на сервере
- Подключить стили
- Отобразить данные динамически с помощью шаблонов и jQuery (ДЗ: изменить состояние таска с запросом на сервер, вернуть список всех тасков, обновить только измененные таски в DOM)
- Browserify + Babel + ...
- Начать полноценный SPA на React.js (ДЗ: компонент)
- Закончить SPA (ДЗ: доделать фичи)
- Использовать БД в REST API (ДЗ: запрос к БД)
/api/projects
GET
получить все проекты- ответ
[
{
"id": 1,
"name": "My project",
"tasks": []
}
]
POST
создать новый проект- запрос
{
"name": "My project"
}
- ответ
{
"id": 1,
"name": "My project",
"tasks": []
}
/api/projects/{project_id}
GET
получить проект- ответ
{
"id": 1,
"name": "My project",
"tasks": []
}
PUT
изменить проект- запрос
{
"name": "My awesome project",
"tasks": []
}
- ответ
{
"id": 1,
"name": "My awesome project",
"tasks": []
}
DELETE
удалить проект- ответ
[
{
"id": 1,
"name": "My project",
"tasks": []
}
]
/api/projects/{project_id}/tasks
GET
получить все задания в проекте- ответ
[
{
"id": 1,
"projectID": 1,
"name": "My task",
"deadline": 1457529375881,
"done": false
}
]
POST
создать новое задание в проекте- запрос
{
"name": "My task",
"deadline": 1457529375881
}
- ответ
{
"id": 1,
"projectID": 1,
"name": "My task",
"deadline": 1457529375881,
"done": false
}
/api/projects/{project_id}/tasks/{task_id}
GET
получить задание из проекта- ответ
{
"id": 1,
"projectID": 1,
"name": "My task",
"deadline": 1457529375881,
"done": false
}
PUT
изменить задание в проекте- запрос
{
"done": true
}
- ответ
{
"id": 1,
"projectID": 1,
"name": "My task",
"deadline": 1457529375881,
"done": true
}
DELETE
удалить задание из проекта- ответ
[
{
"id": 1,
"projectID": 1,
"name": "My task",
"deadline": 1457529375881,
"done": false
}
]