Platzi Fake Store API Categories API

The Categories API from Platzi Fake Store API — 4 operation(s) for categories.

OpenAPI Specification

platzi-fake-store-api-categories-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Platzi Fake Store Auth Categories API
  description: A free, fake REST API for testing and prototyping e-commerce or shopping site applications. Provides products, categories, users, files, and JWT authentication endpoints.
  version: 1.0.0
  contact:
    name: Platzi Fake Store API
    url: https://fakeapi.platzi.com/
servers:
- url: https://api.escuelajs.co/api/v1
  description: Public sandbox
tags:
- name: Categories
paths:
  /categories:
    get:
      tags:
      - Categories
      summary: List categories
      operationId: listCategories
      parameters:
      - in: query
        name: limit
        schema:
          type: integer
      responses:
        '200':
          description: A list of categories
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Category'
    post:
      tags:
      - Categories
      summary: Create category
      operationId: createCategory
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CategoryCreate'
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Category'
  /categories/{id}:
    parameters:
    - $ref: '#/components/parameters/CategoryId'
    get:
      tags:
      - Categories
      summary: Get category
      operationId: getCategory
      responses:
        '200':
          description: A category
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Category'
    put:
      tags:
      - Categories
      summary: Update category
      operationId: updateCategory
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CategoryCreate'
      responses:
        '200':
          description: Updated category
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Category'
    delete:
      tags:
      - Categories
      summary: Delete category
      operationId: deleteCategory
      responses:
        '200':
          description: Boolean true
          content:
            application/json:
              schema:
                type: boolean
  /categories/slug/{slug}:
    parameters:
    - in: path
      name: slug
      required: true
      schema:
        type: string
    get:
      tags:
      - Categories
      summary: Get category by slug
      operationId: getCategoryBySlug
      responses:
        '200':
          description: A category
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Category'
  /categories/{id}/products:
    parameters:
    - $ref: '#/components/parameters/CategoryId'
    get:
      tags:
      - Categories
      summary: List products in a category
      operationId: listCategoryProducts
      responses:
        '200':
          description: Products
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Product'
components:
  schemas:
    Product:
      type: object
      properties:
        id:
          type: integer
        title:
          type: string
        slug:
          type: string
        price:
          type: number
        description:
          type: string
        category:
          $ref: '#/components/schemas/Category'
        images:
          type: array
          items:
            type: string
            format: uri
        creationAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
    Category:
      type: object
      properties:
        id:
          type: integer
        name:
          type: string
        slug:
          type: string
        image:
          type: string
          format: uri
    CategoryCreate:
      type: object
      required:
      - name
      - image
      properties:
        name:
          type: string
        image:
          type: string
          format: uri
  parameters:
    CategoryId:
      in: path
      name: id
      required: true
      schema:
        type: integer
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT