Professional Documents
Culture Documents
This document is intended for sole use by the company, Geekseat Indonesia. Distribution outside of
Geekseat is strictly forbidden and will result in your application being void. © Geekseat
The Story: Building a RESTful API Service
Objective:
The candidate is required to design and implement a RESTful API service for a simple application.
Requirements:
• API Design and Documentation:
- Design a RESTful API for a "To-Do List" application that allows users to manage tasks.
- Document the API endpoints, request and response formats, authentication, and error handling
using tools like Swagger or Postman.
• Authentication and Authorization:
- Implement token-based authentication for API access.
- Include role-based access control to restrict certain actions to authorized users.
• CRUD Operations:
- Implement CRUD (Create, Read, Update, Delete) operations for tasks using appropriate HTTP
methods (POST, GET, PUT, DELETE).
- Ensure data validation and handle errors gracefully.
• Data Persistence:
- Choose a database (e.g., MySQL, PostgreSQL) and create a schema to store task data.
- Implement database interactions for storing and retrieving tasks.
Testing:
• Write unit tests for API endpoints using a testing framework like Jest or Mocha.
• Include test cases to cover positive and negative scenarios.
Security:
• Implement secure communication using HTTPS.
• Apply best practices for API security, such as input sanitization and protection against common
attacks (e.g., SQL injection, XSS).
Deployment:
• Deploy the API service to a cloud platform (e.g., AWS, Heroku) or a local server.
• Provide clear instructions for setting up and running the API service.
This technical test allows candidates to demonstrate their API-First development skills by designing and
building a functional RESTful API service. It assesses their ability to design a well-structured API, handle
authentication and authorization, interact with a database, implement CRUD operations, ensure data
validation and security, and provide thorough documentation. Candidates can showcase their coding
proficiency, attention to detail, and problem-solving capabilities within the context of API development.