Create a simple todo Rest API with features to add, complete, and delete tasks.
Create a simple todo Rest API with features to add, complete, and delete tasks.
The TodoList API Project is a comprehensive, hands-on API development and testing project. This project involves building a RESTful API that handles basic task management operations for a to-do list application. Through implementing this API, developers will learn how to design, implement, and test various endpoints to manage tasks effectively.
No submissions yet, start by making your first submission
In this project, you'll create an API that supports core CRUD (Create, Read, Update, Delete) operations, along with robust edge case handling. The API provides endpoints to:
This suite tests core functionality for managing tasks within the to-do list, ensuring that all CRUD operations behave as expected:
id
, title
, description
, and completed
in the response.This suite challenges the API with uncommon scenarios to validate stability and error handling:
You api should respect this openapi specification:
openapi: 3.0.0 info: title: Task Management API description: An API for managing tasks with CRUD operations. version: 1.0.0 paths: /tasks: post: summary: Create a Task description: Creates a new task with a unique identifier. requestBody: required: true content: application/json: schema: type: object required: - title properties: title: type: string description: The title of the task. description: type: string description: Optional description of the task. responses: '201': description: Task created successfully. content: application/json: schema: $ref: '#/components/schemas/Task' '400': description: Validation error content: application/json: schema: $ref: '#/components/schemas/ValidationError' get: summary: Retrieve All Tasks description: Retrieves a list of all tasks. responses: '200': description: A list of tasks. content: application/json: schema: type: array items: $ref: '#/components/schemas/Task' /tasks/{id}: get: summary: Retrieve Task by ID description: Retrieves a specific task based on its unique identifier. parameters: - name: id in: path required: true schema: type: integer responses: '200': description: Task found and returned. content: application/json: schema: $ref: '#/components/schemas/Task' '404': description: Task not found. content: application/json: schema: $ref: '#/components/schemas/Error' put: summary: Update Task (Full Update) description: Fully updates an existing task by replacing all fields with the provided data. parameters: - name: id in: path required: true schema: type: integer requestBody: required: true content: application/json: schema: type: object properties: title: type: string description: New title of the task. description: type: string description: New description of the task. completed: type: boolean description: Completion status of the task. responses: '200': description: Task updated successfully. content: application/json: schema: $ref: '#/components/schemas/Task' '404': description: Task not found. content: application/json: schema: $ref: '#/components/schemas/Error' delete: summary: Delete Task description: Deletes a task identified by its unique identifier. parameters: - name: id in: path required: true schema: type: integer responses: '204': description: Task deleted successfully. No content returned. '404': description: Task not found. content: application/json: schema: $ref: '#/components/schemas/Error' components: schemas: Task: type: object properties: id: type: integer description: Unique identifier of the task. title: type: string description: Title of the task. description: type: string description: Description of the task. completed: type: boolean description: Completion status of the task. ValidationError: type: object properties: errors: type: array items: type: object properties: msg: type: string param: type: string location: type: string Error: type: object properties: error: type: string description: Error message
By completing the TodoList API Project, you will gain practical experience in API development, testing strategies, and handling common edge cases. This project is ideal for developers looking to strengthen their skills in backend development, API design, and automated testing.