GS - Software Engineer (API Integration) - Technical Test
GS - Software Engineer (API Integration) - Technical Test
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.