Skip to content

API REST inspirada en la famosa PokeAPI. Liviana, simple y escalable.

Notifications You must be signed in to change notification settings

JDVillarH/api-php-nativo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PokeAPI (REST) - PHP Nativo

Este es un proyecto de API REST inspirado en la conocida PokeAPI. Puedes utilizar este proyecto para APIs de uso personal dado que el proyecto es fácilmente reutilizable.

Características

  • Enrutamiento simple e intuitivo: Configuración y manejo de rutas de manera clara, facilitando la escalabilidad del código.

  • Paginación y límites personalizables: Configura el número de registros por página y el total de registros a mostrar para optimizar el rendimiento y la usabilidad.

  • Control de acceso por dominio: Permite la definición de una lista de dominios permitidos, asegurando que solo los orígenes autorizados puedan interactuar con la API.

  • Registro de Errores: Implementa un sistema de logging para capturar y almacenar errores, facilitando la depuración y el monitoreo del estado de la API.

Requisitos

  • Apache
  • PHP 7.4 o superior
  • Composer para dependencias
  • MySQL

Instalación y configuración

  1. Clona el repositorio:

    git clone https://github.com/JDVillarH/api-php-nativo.git
  2. Instala las dependencias:

    composer install
  3. Configura el proyecto:

Tip

Si deseas modificar las rutas puedes encontrar más información sobre las rutas en Bramus Router

  • En public/index.php se encuentran las rutas y controladores ya definidos para el manejo de las solicitudes.

  • El archivo pokemon.sql.gz contiene la estructura e información de la base de datos de MySQL, importalo en tu base de datos para que el API funcione correctamente.

  • En el archivo .env encontrarás las variables DB en las que podrás ingresar las credenciales para tu base de datos y con APP_LOCAL para definir si tu API se encuentra en local o producción.

  • En el archivo app/config/constants.php encontrarás la variable ALLOWED_DOMAINS en la cual podrás agregar los dominios a los cuales quieres darle permisos de interactuar con tu API o si no quieres limitar el acceso a dominios, puedes dejar la variable con el valor "*".

Uso

Listado de recursos

  GET /api/v1/
{
  "pokemon": "https://ejemplo/api/v1/pokemon",
  "types": "https://ejemplo/api/v1/types",
  "moves": "https://ejemplo/api/v1/moves",
  "abilities": "https://ejemplo/api/v1/abilities"
}

Listado de pokemon

  GET /api/v1/pokemon?page={página}&limit={limite}
{
    "name": "bulbasaur",
    "url": "https://ejemplo/api/v1/pokemon/1"
},
...

Obtener pokemon especifico

  GET /api/v1/pokemon/${id}
{
    "name": "bulbasaur",
    "image": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/other/dream-world/1.svg",
    "stats": [...],
    "types": [...],
    "moves": [...],
    "abilities": [...]
}

Listado de tipos de pokemon

  GET /api/v1/types
{
    "id": 1,
    "name": "normal"
},
...

Listado de movimientos de pokemon

  GET /api/v1/moves
{
    "id": 1,
    "name": "pound"
},
...

Listado de habilidades de pokemon

  GET /api/v1/abilities
{
    "id": 1,
    "name": "stench"
},
...

Contribución

Si deseas contribuir al proyecto, puedes hacer un fork del repositorio y posteriormente un pull request con tu característica o corrección.

About

API REST inspirada en la famosa PokeAPI. Liviana, simple y escalable.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages