Esta API Restful fue creada con el objetivo de permitir a los alumnos de It Academy compartir recursos y conocimientos sobre diferentes temas, organizados en categorías y temas específicos.
(Disclaimer: esta Api es solo un divertimento como programador. La It Academy no me ha encargado que haga semejante cosa; es solo un reto que me he planteado yo)
- Python
- Django
- Django Rest Framework
- Simple JWT
- drf-spectacular
La API cuenta con los siguientes endpoints:
api/users/register
: Registro de usuarios.api/users/login
: Inicio de sesión con autenticación JWT.api/users/refresh
: Renovación de token JWT.api/users/admin
: Acceso a una vista protegida para los usuarios con permisos de administrador.api/wiki/categories/
: Listado y creación de categorías.api/wiki/categories/<int:category_id>/
: Consulta, actualización y eliminación de categorías específicas.api/wiki/temas/
: Listado y creación de temas.api/wiki/temas/<int:tema_id>/
: Consulta, actualización y eliminación de temas específicos.api/wiki/wikis/
: Listado y creación de wikis.api/wiki/wikis/<int:wiki_id>/
: Consulta, actualización y eliminación de wikis específicas.
La API utiliza autenticación basada en tokens JWT (JSON Web Tokens), los cuales se obtienen al hacer una petición de inicio de sesión a api/users/login
. Para acceder a los endpoints protegidos, es necesario incluir el token JWT en la cabecera de la petición, de la siguiente manera:
Authorization: Bearer <token>
El token puede ser renovado con la petición a api/users/refresh
.
La API también cuenta con un esquema generado automáticamente por drf-spectacular, el cual se puede consultar en la ruta api/schema/
. Adicionalmente, se han incluido dos vistas opcionales para visualizar el esquema:
api/schema/swagger-ui/
: Interfaz web generada con Swagger UI.
api/schema/redoc/
: Interfaz web generada con ReDoc.
-
Clona el repositorio en tu ordenador:
git clone https://github.com/ivanlegranbizarro/ita-wiki-django.git
-
Crea un entorno virtual para el proyecto:
python -m venv myenv
-
Activa el entorno virtual:
-
En Windows:
myenv\Scripts\activate
-
En Linux o macOS:
source myenv/bin/activate
-
-
Instala las dependencias del proyecto con pip:
pip install -r requirements.txt
-
Renombra el archivo
.env.example
a.env
y configura las variables de entorno`. Por defecto puedes usar una base de datos sqlite. -
Ejecuta las migraciones:
python manage.py migrate
-
Crea un superusuario para acceder al panel de administración:
python manage.py createsuperuser
-
Ejecuta el servidor de desarrollo:
python manage.py runserver
-
Abre el navegador y accede a la dirección
http://localhost:8000/
. Verás la página principal de la API. -
Para acceder al panel de administración, ingresa a la dirección
http://localhost:8000/admin/
e ingresa las credenciales del superusuario creado en el paso 7.