d0c 8 months ago
parent
commit
7c7a417092
1 changed files with 131 additions and 0 deletions
  1. 131 0
      API.md

+ 131 - 0
API.md

@@ -0,0 +1,131 @@
+# SuitablePhones API Documentation
+
+## Table of Contents
+
+1. [Introduction](#introduction)
+2. [Base URL](#base-url)
+3. [API Endpoints](#api-endpoints)
+    - [Search Devices](#search-devices)
+    - [Get a Single Device](#get-a-single-device)
+    - [Get Devices with Filters](#get-devices-with-filters)
+4. [Models](#models)
+5. [Errors](#errors)
+6. [Notes](#notes)
+
+---
+
+## Introduction
+
+This API allows you to query devices and fetch details related to them. The API offers various endpoints to facilitate different types of search queries.
+
+---
+
+## Base URL
+
+The base URL for all the API endpoints is `http://[your_domain]/api/`.
+
+---
+
+## API Endpoints
+
+### Search Devices
+
+- **Method:** `GET`
+- **Endpoint:** `/devices/search`
+- **Query Parameters:**
+    - `q`: String to search in `codename`, `name`, or `vendor`.
+
+#### Example
+
+```bash
+GET /api/devices/search?q=iphone
+```
+
+#### Response
+
+Returns a JSON array of all devices that match the query string in either `codename`, `name`, or `vendor`.
+
+---
+
+### Get a Single Device
+
+- **Method:** `GET`
+- **Endpoint:** `/devices/single`
+- **Query Parameters:**
+    - `codename`: The codename of the device.
+
+#### Example
+
+```bash
+GET /api/devices/single?codename=Pixel_4a
+```
+
+#### Response
+
+Returns a JSON object of the device that matches the codename.
+
+---
+
+### Get Devices with Filters
+
+- **Method:** `GET`
+- **Endpoint:** `/devices`
+- **Query Parameters:**
+    - `name`: String to search in `name`.
+    - `megapixel`: Minimal camera megapixels.
+    - `size_in`: Maximum screen size in inches.
+    - `release`: Release year.
+    - `resolution`: Screen resolution.
+    - `screen_type`: Screen technology type.
+    - `soc`: System on Chip.
+    - `storage`: Storage size.
+    - `vendor`: Vendor name.
+    - `version`: OS version.
+    - `short_view`: Use this parameter for a shorter view of devices.
+
+#### Example
+
+```bash
+GET /api/devices?megapixel=3&vendor=Apple&short_view=true
+```
+
+#### Response
+
+Returns a JSON array of all devices that match the query parameters.
+
+---
+
+## Models
+
+### Device
+
+- `codename` (string): Codename of the device.
+- `name` (string): Name of the device.
+- `megapixel` (float): Camera quality in megapixels.
+- `size_in` (float): Screen size in inches.
+- `release` (string): Release year.
+- `resolution` (string): Screen resolution.
+- `screen_type` (string): Screen technology.
+- `soc` (string): System on Chip.
+- `storage` (string): Storage size.
+- `vendor` (string): Vendor name.
+- `version` (string): OS version.
+
+---
+
+## Errors
+
+- `400 Bad Request`: The request could not be understood or was missing required parameters.
+- `404 Not Found`: Resource was not found.
+- `500 Internal Server Error`: An error occurred on the server.
+
+---
+
+## Notes
+
+- The `short_view` parameter will return a trimmed-down version of the device object.
+- The `megapixel` and `size_in` parameters accept decimal values.
+
+---
+
+I hope this helps! Feel free to customize it further as you see fit.