dsolartec / go-crud-gin

Proyecto de muestra de un CRUD usando la librería Gin de Go.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Go CRUD usando Gin

Repositorio GitHub

Instalación de Go

Para instalar Go solamente debes visitar su página oficial y seguir los pasos según el sistema operativo que tengas.

Ejecutar proyecto usando Visual Studio Code

  • Paso 1 Instalar Go (Ver Instalación de Go).

  • Paso 2 Instalar Visual Studio Code.

  • Paso 3 Abrir la carpeta donde está el proyecto usando Visual Studio Code.

  • Paso 4 Ir a la pestaña Run and Debug del costado izquierdo de la aplicación. Run and Debug button tab

  • Paso 5 Seleccionar Launch CRUD y darle en el icono de ejecutar. Run configuration

  • Paso 6 Esperar que muestre el puerto :8080 en la consola.

Ejecutar proyecto en la terminal

  • Paso 1 Instalar Go (Ver Instalación de Go).

  • Paso 2 Abrir una terminal en la carpeta donde esté el proyecto.

  • Paso 3 Ejecutar el siguiente comando: go run cmd/api/main.go

  • Paso 4 Esperar que muestre el puerto :8080 en la consola.

Licencia

Este proyecto está bajo la licencia MIT.

Endpoints

Autorizaciones

  • POST /auth/logIn - Inicio de sesión

    Body

    {
        "username": "admin",
        "password": "admin"
    }

    Respuesta exitosa

    {
        "access_token": "JWT"
    }

    Códigos de respuesta

    • 400 - Cuando el nombre de usuario o la contraseña son incorrectos.
    • 500 - Cuando haya ocurrido un error interno.
    • 200 - Cuando haya iniciado sesión exitosamente.

  • POST /auth/signUp - Registro

    Body

    {
        "username": "admin",
        "password": "admin"
    }

    Respuesta exitosa

    {
        "access_token": "JWT"
    }

    Códigos de respuesta

    • 400 - Cuando el nombre del usuario o la contraseña no son válidos.
    • 409 - Cuando el nombre de usuario ya está en uso.
    • 500 - Cuando haya ocurrido un error interno.
    • 201 - Cuando se haya registrado exitosamente.

Usuarios

  • GET /users - Obtener todos los usuarios

    Permisos requeridos: users_read o users_full

    Headers

    {
        "Authorization": "Bearer {access_token}"
    }

    Respuesta exitosa

    [
        {
            "id": 1,
            "username": "admin"
        }
    ]

    Códigos de respuesta

    • 401 - Cuando el usuario autenticado no posee ninguno de los permisos requeridos.
    • 500 - Cuando haya ocurrido un error interno.
    • 200 - Cuando haya podido obtener todos los usuarios.

  • GET /users/id/:id - Obtener un usuario usando su id

    Permisos requeridos: users_read o users_full

    Headers

    {
        "Authorization": "Bearer {access_token}"
    }

    Respuesta exitosa

    {
        "id": 1,
        "username": "admin"
    }

    Códigos de respuesta

    • 401 - Cuando el usuario autenticado no posee ninguno de los permisos requeridos.
    • 404 - Cuando el usuario no existe.
    • 500 - Cuando haya ocurrido un error interno.
    • 200 - Cuando haya podido obtener el usuario.

  • GET /users/username/:username - Obtener un usuario usando su nombre de usuario

    Permisos requeridos: users_read o users_full

    Headers

    {
        "Authorization": "Bearer {access_token}"
    }

    Respuesta exitosa

    {
        "id": 1,
        "username": "admin"
    }

    Códigos de respuesta

    • 401 - Cuando el usuario autenticado no posee ninguno de los permisos requeridos.
    • 404 - Cuando el usuario no existe.
    • 500 - Cuando haya ocurrido un error interno.
    • 200 - Cuando haya podido obtener el usuario.

  • DELETE /users/username/:username - Eliminar un usuario usando su nombre de usuario

    Permisos requeridos: users_write o users_full

    Headers

    {
        "Authorization": "Bearer {access_token}"
    }

    Códigos de respuesta

    • 401 - Cuando el usuario autenticado no posee ninguno de los permisos requeridos.
    • 404 - Cuando el usuario no existe.
    • 409 - Cuando el usuario sea el mismo con el que te autenticaste.
    • 500 - Cuando haya ocurrido un error interno.
    • 204 - Cuando el usuario fue eliminado exitosamente.

  • GET /users/username/:username/permissions - Obtener los permisos de un usuario usando su nombre de usuario

    Permisos requeridos: users_read o users_full

    Headers

    {
        "Authorization": "Bearer {access_token}"
    }

    Respuesta exitosa

    [
        "users_full",
        "grant_permission"
    ]

    Códigos de respuesta

    • 401 - Cuando el usuario autenticado no posee ninguno de los permisos requeridos.
    • 404 - Cuando el usuario no existe.
    • 500 - Cuando haya ocurrido un error interno.
    • 200 - Cuando se haya podido obtener los permisos del usuario.

  • POST /users/username/:username/permission/:permissionName - Otorgarle un permiso usando su nombre de usuario

    Permisos requeridos: grant_permission

    Headers

    {
        "Authorization": "Bearer {access_token}"
    }

    Códigos de respuesta

    • 401 - Cuando el usuario autenticado no posee ninguno de los permisos requeridos.
    • 404 - Cuando el usuario o el permiso no existen.
    • 409 - Cuando el usuario ya posee el permiso.
    • 500 - Cuando haya ocurrido un error interno.
    • 204 - Cuando el permiso fue otorgado al usuario exitosamente.

  • DELETE /users/username/:username/permission/:permissionName - Removerle el permiso previamente otorgado a un usuario usando su nombre de usuario

    Permisos requeridos: revoke_permission

    Headers

    {
        "Authorization": "Bearer {access_token}"
    }

    Códigos de respuesta

    • 400 - Cuando el usuario no posee el permiso.
    • 401 - Cuando el usuario autenticado no posee ninguno de los permisos requeridos.
    • 404 - Cuando el usuario o el permiso no existen.
    • 409 - Cuando el usuario sea el mismo con el que te autenticaste.
    • 500 - Cuando haya ocurrido un error interno.
    • 204 - Cuando el permiso fue removido al usuario exitosamente.

Permisos

  • POST /permissions - Crear un permiso

    Permisos requeridos: permissions_write o permissions_full

    Headers

    {
        "Authorization": "Bearer {access_token}"
    }

    Respuesta exitosa

    {
        "id": 7,
        "name": "grant_permission",
        "description": "Grant a permission to an user"
    }

    Códigos de respuesta

    • 400 - Cuando el nombre del permiso o la descripción no son válidos.
    • 401 - Cuando el usuario autenticado no posee ninguno de los permisos requeridos.
    • 409 - Cuando el nombre del permiso ya existe.
    • 500 - Cuando haya ocurrido un error interno.
    • 201 - Cuando haya podido crear el permiso.

  • GET /permissions - Obtener todos los permisos

    Permisos requeridos: permissions_read o permissions_full

    Headers

    {
        "Authorization": "Bearer {access_token}"
    }

    Respuesta exitosa

    [
        {
            "id": 7,
            "name": "grant_permission",
            "description": "Grant a permission to an user"
        }
    ]

    Códigos de respuesta

    • 401 - Cuando el usuario autenticado no posee ninguno de los permisos requeridos.
    • 500 - Cuando haya ocurrido un error interno.
    • 200 - Cuando haya podido obtener todos los permisos.

  • GET /permissions/id/:id - Obtener un permiso usando su id

    Permisos requeridos: permissions_read o permissions_full

    Headers

    {
        "Authorization": "Bearer {access_token}"
    }

    Respuesta exitosa

    {
        "id": 7,
        "name": "grant_permission",
        "description": "Grant a permission to an user"
    }

    Códigos de respuesta

    • 401 - Cuando el usuario autenticado no posee ninguno de los permisos requeridos.
    • 404 - Cuando el permiso no existe.
    • 500 - Cuando haya ocurrido un error interno.
    • 200 - Cuando haya podido obtener el permiso.

  • GET /permissions/name/:permissionName - Obtener un permiso usando su nombre

    Permisos requeridos: permissions_read o permissions_full

    Headers

    {
        "Authorization": "Bearer {access_token}"
    }

    Respuesta exitosa

    {
        "id": 7,
        "name": "grant_permission",
        "description": "Grant a permission to an user"
    }

    Códigos de respuesta

    • 401 - Cuando el usuario autenticado no posee ninguno de los permisos requeridos.
    • 404 - Cuando el permiso no existe.
    • 500 - Cuando haya ocurrido un error interno.
    • 200 - Cuando haya podido obtener el permiso.

  • DELETE /permissions/name/:permissionName - Eliminar un permiso usando su nombre

    Permisos requeridos: permissions_write o permissions_full

    Headers

    {
        "Authorization": "Bearer {access_token}"
    }

    Códigos de respuesta

    • 401 - Cuando el usuario autenticado no posee ninguno de los permisos requeridos.
    • 404 - Cuando el permiso no existe.
    • 409 - Cuando el permiso no pueda ser eliminado.
    • 500 - Cuando haya ocurrido un error interno.
    • 204 - Cuando el permiso fue eliminado exitosamente.

About

Proyecto de muestra de un CRUD usando la librería Gin de Go.

License:MIT License


Languages

Language:Go 100.0%