This API provides functionalities for managing topics and their associated courses.
Communication:
- Content-Type: Application/JSON is used for both request and response bodies.
- Spring Annotations: The API leverages Spring annotations for controller definitions and dependency injection.
- Error Responses: Responses include an error message and status code in case of exceptions.
1. Topics API
Endpoints:
- GET /get/topics
- Description: Retrieves a list of all topics.
- Response: JSON array of
Topicobjects.
- GET /get/topic/{id}
- Description: Gets a specific topic by its ID.
- Path Parameter:
{id}- The numeric ID of the topic to retrieve. - Response: JSON object representing the
Topicor a Not Found status code if not found.
- POST /post/topic
- Description: Creates a new topic.
- Request Body: JSON object representing the new
Topic. - Response: JSON array containing the list of topics after creation (including the newly created one).
- PUT /update/topic/{id}
- Description: Updates an existing topic.
- Path Parameter:
{id}- The numeric ID of the topic to update. - Request Body: JSON object representing the updated
Topic. - Response: JSON object representing the updated
Topicor a Not Found status code if not found.
- DELETE /delete/topic/{id}
- Description: Deletes a topic by its ID.
- Path Parameter:
{id}- The numeric ID of the topic to delete. - Response: No response body, but deletes the specified topic (returns void).
2. Courses API
Endpoints (all require a topic ID in the path):
- GET /get/topics/{id}/courses
- Description: Retrieves all courses associated with a specific topic.
- Path Parameter:
{id}- The numeric ID of the topic to get courses for. - Response: JSON array of
Courseobjects.
- GET /get/topic/{topicId}/courses/{id}
- Description: Gets a specific course by its ID within a topic.
- Path Parameters:
{topicId}- The numeric ID of the topic containing the course.{id}- The numeric ID of the course to retrieve.
- Response: JSON object representing the
Courseor a Not Found status code if not found.
- POST /post/topic/{topicId}/courses
- Description: Creates a new course associated with a specific topic.
- Path Parameter:
{topicId}- The numeric ID of the topic for the new course. - Request Body: JSON object representing the new
Course. The course object should include the topic ID in its request body. - Response: No response body, but creates the new course associated with the specified topic.
- PUT /update/topic/{topicId}/courses/{id}
- Description: Updates an existing course within a topic.
- Path Parameters:
{topicId}- The numeric ID of the topic containing the course.{id}- The numeric ID of the course to update.
- Request Body: JSON object representing the updated
Course. The course object should include the topic ID in its request body. - Response: JSON object representing the updated
Course.
- DELETE /delete/topic/{topicId}/courses/{id}
- Description: Deletes a course by its ID within a topic.
- Path Parameters:
{topicId}- The numeric ID of the topic containing the course.{id}- The numeric ID of the course to delete.
- Response: No response body, but deletes the specified course (returns void).
Note:
- The
CourseAPI endpoints require the corresponding topic to exist before creating or updating courses. - Error responses might include details about exceptions encountered during processing.