Skip to content

Latest commit

 

History

History
73 lines (61 loc) · 3.67 KB

README.md

File metadata and controls

73 lines (61 loc) · 3.67 KB

Spring REST API Documentation - Topics and Courses

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 Topic objects.
  • 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 Topic or 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 Topic or 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 Course objects.
  • 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 Course or 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 Course API endpoints require the corresponding topic to exist before creating or updating courses.
  • Error responses might include details about exceptions encountered during processing.