Giter Site home page Giter Site logo

api-blog's Introduction

Enlace para registro de usuarios

El enlace http://127.0.0.1:8000/account/register/ nos ayudara a crear usuarios, los cuales tendrán sólo el rango de usuario normal (no de Staff o Administrador), los datos que debemos pasar en el JSON por medio de una petición 'POST' son:

{

    "username": "NEW_USERNAME",

    "email": "USER_EMAIL",

    "password": "USER_PASSWORD",

    "password2": "USER_PASSWORD"

}

Esto como respuesta nos dará el siguiente JSON:

{

    "response": "Registration Successful!",

    "username": "USER_PASSWORD",

    "email": "USER_EMAIL",

    "token": "688779351aac04259ee2af6976e79ead9da0df80"

}

Este Token se quedara guardado en la base de datos hasta hacer #Logout

Errores en registro

En caso de usar un usuario ya existente, en la base de datos, nos regresara el siguiente mensaje de error:

{

    "username": [

        "A user with that username already exists."

    ]

}

Si el Email introducido ya esta registrado con otro usuario, en la base de datos nos regresara el siguiente error:

{

    "error": "Email already exists!"

}

Si nuestra contraseña y su confirmación no coinciden, nos regresara el siguiente mensaje de error:

Entrada

{

    "username": "NEW_USERNAME",
    "email": "USER_EMAIL",
    "password": "USER_PASSWORD",
    "password2": "USER_PASS"

}

Salida

{

    "error": "P1 and P2 should be same!"

}

Enlace para hacer Login

Con el enlace http://127.0.0.1:8000/account/login/ podemos hacer Log in de nuestros usuarios que ya creamos con el anterior método, solo debemos pasarle una petición 'POST' y como body el Json con el usuario y contraseña registradas, esto creara (si no lo tiene ya) el token de este usuario en la base de datos.

Entrada

{

    "username": "USERNAME",

    "password": "USER_PASSWORD"

}

Salida

{

    "token": "1c86186cb1ea5c5ffcb7311b8f77d9e618531cd2"

}

Errores en Login

En caso de mandar mal el username o el password nos regresara el mismo error:

{

    "non_field_errors": [

        "Unable to log in with provided credentials."

    ]

}

Logout

Al mandar la petición de logout se destruirá el token asignado al usuario del token que estamos pasando. La petición será al link http://127.0.0.1:8000/account/logout/

Tendrá que ser un 'POST' y dentro del body pasar como headers la KEY Authorization y como VALUE Token "el token del usuario que hará logout"

image

Errores al hacer Logout

Si mandamos mal la petición por que el token esta incompleto nos regresara el siguiente response

{

    "detail": "Invalid token."

}

Lista de Blog's existentes

Para obtener la lista de Blogs existentes en la base de datos de TODOS los usuarios, necesitamos mandar una petición GET al link http://127.0.0.1:8000/api/blog/ , en esta no importa si en los headers lleva algún token de autenticación ya que los permisos están configurados para que cualquier usuario, ya sea anónimo, normal, staff o admin, pueda hacer las peticiones GET que necesite sin ningún limite.

Este nos regresara un response con un JSON englobando todas las entradas existentes en orden en el que fueron creadas (de la mas antigua a la mas reciente), mostrando primeramente el numero de "id" de la entrada, el nombre del usuario que escribió la entrada como "review_user", seguido del texto de la entrada mostrándolo como "entrada" y la fecha en que fue creado como "fecha"

[

    {

        "id": 7,

        "review_user": "keikusanagi",

        "titulo": "Primera entrada - edit",

        "entrada": "ljkahflkaklfafa - edit",

        "fecha": "2022-11-29T22:16:16.202267Z"

    },

    {

        "id": 8,

        "review_user": "test",

        "titulo": "hola 2",

        "entrada": "hola otra ves - actualizado por administrador",

        "fecha": "2022-11-29T19:52:06.271416Z"

    },

    {

        "id": 9,

        "review_user": "keikusanagi",

        "titulo": "Token",

        "entrada": "Intento de crear una entrada con un token",

        "fecha": "2022-11-29T23:42:31.068123Z"

    }

]

Entrada de Blog

Para crear una entrada de Blog mandaremos una petición POST al link http://127.0.0.1:8000/api/blog/ como body tenemos que pasarle un Json con solo dos campos, "titulo" y "entrada" este debe llevar en el header como KEY: "Authorization" y como VALUE: "Token 'token del usuario logeado'":

![[Pasted image 20221201120112.png]]

  {

        "titulo": "Titulo que llevara la entrada de blog",

        "entrada": "Todo el texto que llevara la entarda"

  }

Errores Entrada de Blog

El titulo no deberá pasar de 200 caracteres en caso de sobrepasar estos nos regresara el siguiente mensaje de error

{

    "titulo": [

        "Ensure this field has no more than 200 characters."

    ]

}

La "entrada" no tiene un máximo de caracteres establecido

Si no pasamos un token valido, ya sea porque este usuario ya hiso Logout o porque esta mal escrito obtendremos como respuesta:

{

    "detail": "Invalid token."

}

api-blog's People

Contributors

kei-kusanagi avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.