Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • U UCON Wiki
  • Project information
    • Project information
    • Activity
    • Labels
    • Planning hierarchy
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • UCON
  • UCON Wiki
  • Wiki
  • contratos

Last edited by João Vitor Bernardi Severo Jun 05, 2022
Page history
This is an old version of this page. You can view the most recent version or browse the history.

contratos

Home Escopo e Cronograma Processo Design/Mockups Configuração Arquitetura Código BD Qualidade Utilização Contratos

Contratos de comunicação back-front

Descrição

Os contratos são os formatos de mensagem em que ambos os lados concordam em receber, tanto para envio quanto para resposta. Envios para o back podem ser de três tipos, não se limitando a usar somente um:

  1. Parâmetro de URL (Params): valores passados na URL em formato de path, exemplo:
  • http://ucon.com/students/1/teachers

    No exemplo acima, o 1 é um parâmetro de URL

  1. Parâmetro de Consulta (Query String): valores passados na URL após uma interrogação e separados por &, exemplo:
  • http://ucon.com/students?offset=0&limit=10

    No exemplo acima os valores offset e limit são query strings

  1. Dados do Corpo (Payload): dados enviados no corpo (body) da requisição

Sumário

  • Autenticação
  • Students
  • Teachers
  • Degrees
  • Genders
  • Projects
  • Opportunities
  • Courses
  • Experiences

POST /login/

Params:

Nenhum parâmetro esperado

Query string:

Nenhuma query string esperada

Payload:

{
    email: "str",
    password: "str",
    isTeacher: 1
}

Responses:

  • 200:

    {
        status: 200,
        msg: "Success",
            user: {
                id: 1
            }
        }
    }
  • 400:

    {
        status: 400,
        msg: "Bad request",
        errors: [
            {
                value: "joao.severo",
                msg: "Invalid value for \"email\""
            }
        ]
    }
  • 401:

    {
        status: 401,
        msg: "Bad request",
        errors: [
            {
                value: "email/password",
                msg: "Invalid email or password"
            }
        ]
    }
  • 500

    {
        status: 500,
        msg: "Internal error occurred",
        errors: [
            {
                value: Any,
                msg: "str"
            }
        ]
    }

POST /logoff/

Params:

Nenhum parâmetro esperado

Query string:

Nenhuma query string esperada

Payload:

Nenhum payload esperado

Responses:

  • 204: NO_CONTENT

  • 500

    {
        status: 500,
        msg: "Internal error occurred",
        errors: [
            {
                value: Any,
                msg: "str"
            }
        ]
    }

GET /students/

Params:

Nenhum parâmetro esperado

Query string:

  • institution: str = faculdade do aluno
  • semester: int = semestre em que o aluno se encontra
  • offset: str = início da lista de professores
  • limit: str = tamanho da lista retornada

Payload:

Nenhum payload esperado

Responses:

  • 200
    {
        status: 200,
        msg: "Success",
        students: [
            {
                id: 11,
                name: "str",
                birthday: "2022-04-02T00:00:00.000Z",
                email: "str",
                semester: 5,
                description: "str",
                lattesURL: "str",
                course: "str",
                gender: "str",
                institution: "str"
            },
            ...
        ]
    }
  • 400
    {
        status: 400,
        msg: "Bad request",
        errors: [
            {
                value: "",
                msg: "Invalid value for \"semester\""
            }
        ]
    }
  • 500
    {
        status: 500,
        msg: "Internal error occurred",
        errors: [
            {
                value: Any,
                msg: "str"
            }
        ]
    }

GET /students/{id}/

Params:

  • id: int = id do estudante

Query string:

Nenhuma query string esperada

Payload:

Nenhum payload esperado

Responses:

  • 200
    {
        status: 200,
        msg: "Success",
        student: {
            id: 11,
            name: "str",
            birthday: "2022-04-02T00:00:00.000Z",
            email: "str",
            semester: 5,
            description: "str",
            lattesURL: "str",
            course: "str",
            gender: "str",
            institution: "str"
        }        
    }
  • 400
    {
        status: 400,
        msg: "Bad request",
        errors: [
            {
                value: "",
                msg: "Invalid value for \"id\""
            }
        ]
    }
  • 404
    {
        status: 404,
        msg: "Bad request",
        errors: [
            {
                value: 10,
                msg: "Student not found with id=10"
            }
        ]
    }
  • 500
    {
        status: 500,
        msg: "Internal error occurred",
        errors: [
            {
                value: Any,
                msg: "str"
            }
        ]
    }

POST /students/

Params:

Nenhum parâmetro esperado

Query string:

Nenhuma query string esperada

Payload:

{
    name: "str",
    birthday: "1999-06-11",
    email: "str",
    semester: 5,
    course: "str",
    gender: "str",
    institution: "str",
    password: "str"
}

Responses:

  • 201:
    {
        status: 201,
        msg: "Success",
        student: {
            id: 1,
            name: "str",
            birthday: "2022-04-02T00:00:00.000Z",
            email: "str",
            semester: 5,
            lattesURL: "str",
            course: "str",
            gender: "str",
            institution: "str"
        }
    }
  • 400:
    {
        status: 400,
        msg: "Bad request",
        errors: [
            {
                value: "joao.severo",
                msg: "Invalid value for \"email\""
            }
        ]
    }
  • 404
    {
        status: 404,
        msg: "Bad request",
        errors: [
            {
                value: 10,
                msg: "Student not found with id=10"
            }
        ]
    }
  • 500
    {
        status: 500,
        msg: "Internal error occurred",
        errors: [
            {
                value: Any,
                msg: "str"
            }
        ]
    }

PATCH /students/{id}/

Params:

  • id: int = id do aluno a alterar parcialmente informações

Query string:

Nenhuma query string esperada

Payload:

{
    name: "str",
    birthday: "2022-04-02",
    email: "[email protected]",
    semester: 5,
    course: "Engenharia de Software",
    gender: "Masculino",
    institution: "PUCRS",
    description: "str",
    password: "str"
}

Responses:

  • 204: NO_CONTENT

  • 400:

    {
        status: 400,
        msg: "Bad request",
        errors: [
            {
                value: "joao.severo",
                msg: "Invalid value for \"email\""
            }
        ]
    }
  • 404

    {
        status: 404,
        msg: "Bad request",
        errors: [
            {
                value: 10,
                msg: "Student not found with id=10"
            }
        ]
    }
  • 500

    {
        status: 500,
        msg: "Internal error occurred",
        errors: [
            {
                value: Any,
                msg: "str"
            }
        ]
    }

GET /teachers/

Params:

Nenhum parâmetro esperado

Query string:

Nenhuma query string esperada

Payload:

Nenhum payload esperado

Responses:

  • 200:
    {
        status: 200,
        msg: "Success",
        teachers: [
            {
                   id: 10,
                   name: "name",
                   birthday: "2022-04-02T00:00:00.000Z",
                   email: "[email protected]",
                   lattesURL: "http://lattes.cnpq.br/123",
                   hIndex: 10,
                   gender: "str",
                   degrees: [
                       {
                           course: "Engenharia De Software",
                           institution: "PUCRS",
                           degreeType: "Pós"
                       }
                   ]
            },
            ...
        ]
    }
  • 400:
    {
        status: 400,
        msg: "Bad request",
        errors: [
            {
                value: "",
                msg: "Invalid value for \"id\""
            }
        ]
    }
  • 500
    {
        status: 500,
        msg: "Internal error occurred",
        errors: [
            {
                value: Any,
                msg: "str"
            }
        ]
    }

GET /teachers/{id}/

Params:

  • id: int = id do professor que se deseja abrir o perfil

Query string:

Nenhuma query string esperada

Payload:

Nenhum payload esperado

Responses:

  • 200:
    {
        status: 200,
        msg: "Success",
        teacher: {
               id: 10,
               name: "name",
               birthday: "2022-04-02T00:00:00.000Z",
               email: "[email protected]",
               lattesURL: "http://lattes.cnpq.br/123",
               hIndex: 10,
               gender: "str",
               degrees: [
                   {
                       course: "Engenharia De Software",
                       institution: "PUCRS",
                       degreeType: "Pós"
                   }
               ]
        }
    }
  • 400:
    {
        status: 400,
        msg: "Bad request",
        errors: [
            {
                value: "",
                msg: "Invalid value for \"id\""
            }
        ]
    }
  • 404
    {
        status: 404,
        msg: "Bad request",
        errors: [
            {
                value: 10,
                msg: "Student not found with id=10"
            }
        ]
    }
  • 500
    {
        status: 500,
        msg: "Internal error occurred",
        errors: [
            {
                value: Any,
                msg: "str"
            }
        ]
    }

POST /teachers/

Params:

Nenhum parâmetro esperado

Query string:

Nenhuma query string esperada

Payload:

{
    email: "[email protected]",
    password: "password",
    name: "name",
    lattesId: 123,
    birthday: "2022-04-02",
    genderId: 1,
    hIndex: 10,
    degrees: [
        {
            institution: "PUCRS",
            course: "Engenharia De Software",
            degreeTypeId: 1
        }
    ]
}

Responses:

  • 201:

    {
        status: 200,
        msg: "Success",
        teacher: {
               id: 10,
               name: "name",
               birthday: "2022-04-02T00:00:00.000Z",
               email: "[email protected]",
               lattesURL: "http://lattes.cnpq.br/123",
               hIndex: 10,
               gender: "Masculino",
               degrees: [
                   {
                       course: "Engenharia De Software",
                       institution: "PUCRS",
                       degreeType: "Pós"
                   }
               ]
        }
    }
  • 400:

    {
        status: 400,
        msg: "Bad request",
        errors: [
            {
                value: "joao.severo",
                msg: "Invalid value for \"email\""
            }
        ]
    }
  • 500

    {
        status: 500,
        msg: "Internal error occurred",
        errors: [
            {
                value: Any,
                msg: "str"
            }
        ]
    }

GET /degrees/

Params

Nenhum parâmetro esperado

Query string:

Nenhuma query string esperada

Payload

Nenhum payload esperado

Responses:

  • 200:

    {
        status: 200,
        msg: "Success",
        degrees: [
            {
                id: 1,
                name: "Bacharel"
            },
            ...
        ]
    }
  • 500

    {
        status: 500,
        msg: "Internal error occurred",
        errors: [
            {
                value: Any,
                msg: "str"
            }
        ]
    }

GET /genders/

Params

Nenhum parâmetro esperado

Query string

Nenhuma query string esperada

Payload

Nenhum payload esperado

Responses:

  • 200:

    {
        status: 200,
        msg: "Success",
        genders: [
            {
                id: 1,
                name: "Masculino"
            },
            ...
        ]
    }
  • 500

    {
        status: 500,
        msg: "Internal error occurred",
        errors: [
            {
                value: Any,
                msg: "str"
            }
        ]
    }

GET /projects/

Params

Nenhum parâmetro esperado

Query string

Nenhuma query string esperada

Payload

Nenhum payload esperado

Responses

  • 200:

    {
        status: 200,
        msg: "Success",
        projects: [
            {
                id: 1,
                name: "Projeto Javascript",
                description: "Descrição do projeto Projeto Javascript",
                open: true,
                teacherUserId: 1
            },
            ...
         ]
    }
  • 422:

     {
         status: 422,
         msg: "Bad request",
         errors: [
             {
                 value: "string",
                 msg: "Invalid value"
             }
          ]
     }
  • 500:

    {
        status: 500,
        msg: "Internal error occurred",
        errors: [
            {
                value: Any,
                msg: "str"
            }
        ]
    }

POST /projects/

Params

Nenhum parâmetro esperado

Query string

Nenhuma query string esperada

Payload

{ name: "titulo", teacherId: 1, description: "descricao", opportunities: [ { name: "nome vaga", description: "desc vaga" }, { name: "nome 2", description: "desc 2" } ] }

### Responses

- 201:
    ```
    {
        status: 201,
        msg: "Success",
        project: {
            id: 1,
            name: "Projeto Javascript",
            description: "Descrição do projeto Projeto Javascript",
            open: true,
            teacherUserId: 1,
            opportunities: [
                {
                    id: 1,
                    name: "nome vaga",
                    description: "desc vaga",
                    open: true
                },
                {
                    id: 2,
                    name: "nome 2",
                    description: "desc 2",
                    open: true
                }
            ]
        }
    }
    ```

- 422:
{
    status: 422,
    msg: "Bad request",
    errors: [
        {
            value: "string",
            msg: "Invalid value"
        }
     ]
}
```
  • 500:
    {
        status: 500,
        msg: "Internal error occurred",
        errors: [
            {
                value: Any,
                msg: "str"
            }
        ]
    }

GET /projects/{id}/

Params

ID do projeto

Query string

Nenhuma query string esperada

Payload

Nenhum payload esperado

Responses

  • 200:

    {
        status: 200,
        msg: "Success",
        project: {
            id: 1,
            name: "Projeto Javascript",
            description: "Descrição do projeto Projeto Javascript",
            open: true,
            teacherUserId: 1
        }
    }
  • 422:

     {
         status: 422,
         msg: "Bad request",
         errors: [
             {
                 value: "string",
                 msg: "Invalid value"
             }
          ]
     }
  • 500:

    {
        status: 500,
        msg: "Internal error occurred",
        errors: [
            {
                value: Any,
                msg: "str"
            }
        ]
    }

GET /projects/{id}/candidates/

Params

ID do projeto

Query string

Nenhuma query string esperada

Payload

Nenhum payload esperado

Responses

  • 200:

    {
        status: 200,
        msg: "Success",
        candidates: [
            {
                id: 2,
                name: "student",
                description: "Test student",
                birthday: "2001-03-27T00:00:00.000Z",
                semester: 6,
                email: "[email protected]",
                lattesURL: "http://lattes.cnpq.br/54321",
                course: "Engenharia de Software",
                gender: "Masculino",
                institution: "PUCRS",
                appliedOpportunities: [
                    {
                        matchId: 3,
                        id: 1,
                        type: "junior",
                        description: "Oportunidade de nivel junior no projeto 1",
                        semesterStart: 1,
                        semesterEnd: 2,
                        open: true,
                        projectId: 1
                    }
                ]
            }
        ]
    }
  • 422:

     {
         status: 422,
         msg: "Bad request",
         errors: [
             {
                 value: "string",
                 msg: "Invalid value"
             }
          ]
     }
  • 500:

    {
        status: 500,
        msg: "Internal error occurred",
        errors: [
            {
                value: Any,
                msg: "str"
            }
        ]
    }


GET /projects/{projectId}/accept/{matchId}

Params

ID do projeto e do match que está pendente

Query string

Nenhuma query string esperada

Payload

Nenhum payload esperado

Responses

  • 200:

    {
        status: 200,
        msg: "Success",
        match: {
            id: 3,
            from: "STUDENT",
            status: "DONE",
            createdAt: "2022-05-19T01:23:00.410Z",
            updatedAt: "2022-05-19T01:28:28.794Z",
            userId: 2,
            opportunityId: 1
        }
    }
  • 422:

    {
        status: 422,
        msg: "Bad request",
        errors: [
            {
                value: "string",
                msg: "Invalid value"
            }
         ]
    }
  • 500:

    {
        status: 500,
        msg: "Internal error occurred",
        errors: [
            {
                value: Any,
                msg: "str"
            }
        ]
    }

GET /projects/{projectId}/opportunities/

Params

ID do projeto que possui a oportunidade

Query string

Nenhuma query string esperada

Payload

Nenhum payload esperado

Responses

  • 200:

    {
        status: 200,
        msg: "Success",
        opportunities: [
            {
                id: 1,
                type: "junior",
                description: "Oportunidade de nivel junior no projeto 1",
                semesterStart: 1,
                semesterEnd: 2,
                open: true,
                projectId: 1
            }
            ...
         ]
    }
  • 422:

     {
         status: 422,
         msg: "Bad request",
         errors: [
             {
                 value: "string",
                 msg: "Invalid value"
             }
          ]
     }
  • 500:

    {
        status: 500,
        msg: "Internal error occurred",
        errors: [
            {
                value: Any,
                msg: "str"
            }
        ]
    }

GET /projects/{projectId}/opportunities/{opportunityId}

Params

ID do projeto que possui a oportunidade e o ID da oportunidade

Query string

Nenhuma query string esperada

Payload

Nenhum payload esperado

Responses

  • 200:

    {
        status: 200,
        msg: "Success",
        opportunity: {
            id: 1,
            type: "junior",
            description: "Oportunidade de nivel junior no projeto 1",
            semesterStart: 1,
            semesterEnd: 2,
            open: true,
            projectId: 1
        }
    }
  • 422:

     {
         status: 422,
         msg: "Bad request",
         errors: [
             {
                 value: "string",
                 msg: "Invalid value"
             }
          ]
     }
  • 500:

    {
        status: 500,
        msg: "Internal error occurred",
        errors: [
            {
                value: Any,
                msg: "str"
            }
        ]
    }

POST /projects/{projectId}/opportunities/{opportunityId}/apply

Params

ID do projeto que possui a oportunidade e o ID da oportunidade

Query string

Nenhuma query string esperada

Payload

Nenhum payload esperado

Responses

  • 200:

    {
        status: 201,
        msg: "Success",
        match: {
            status: "PENDING",
            id: 1,
            from: "STUDENT",
            userId: 1,
            opportunityId: 1,
            updatedAt: "2022-05-19T01:20:33.821Z",
            createdAt: "2022-05-19T01:20:33.821Z"
        }
    }
  • 422:

     {
         status: 422,
         msg: "Bad request",
         errors: [
             {
                 value: "string",
                 msg: "Invalid value"
             }
          ]
     }
  • 500:

    {
        status: 500,
        msg: "Internal error occurred",
        errors: [
            {
                value: Any,
                msg: "str"
            }
        ]
    }

GET /courses/

Params

Nenhum parâmetro esperado

Query string

Nenhuma query string esperada

Payload

Nenhum payload esperado

Responses

  • 200:

    {
        status: 200,
        msg: "Success",
        courses: [
            {
                id: 1,
                name: "Engenharia de Software"
            }
        ]
    }
  • 500:

    {
        status: 500,
        msg: "Internal error occurred",
        errors: [
            {
                value: Any,
                msg: "str"
            }
        ]
    }

GET /experiences/

Params

Nenhum parâmetro esperado

Query string

  • userId: id do usuário que se deseja recuperar as experiências

Payload

Nenhum payload esperado

Responses

  • 200:

    {
        status: 200,
        msg: "Success",
        experiences: [
            {
                id: 1,
                title: "Matador de ratos",
                description: "Trabalhei dentro do laboratório da PUCRS como matador de ratos"
            }
        ]
    }
  • 500:

    {
        status: 500,
        msg: "Internal error occurred",
        errors: [
            {
                value: Any,
                msg: "str"
            }
        ]
    }

GET /experiences/{id}

Params

  • id: Id da experiencia que se deseja buscar

Query string

Nenhuma query string esperada

Payload

Nenhum payload esperado

Responses

  • 200:

    {
        status: 200,
        msg: "Success",
        experience: {
            id: 1,
            title: "Matador de ratos",
            description: "Trabalhei dentro do laboratório da PUCRS como matador de ratos"
        }
    }
  • 500:

    {
        status: 500,
        msg: "Internal error occurred",
        errors: [
            {
                value: Any,
                msg: "str"
            }
        ]
    }

Clone repository
  • Gerência
  • Instalação
  • Retro
  • Utilizando a wiki
    • adicionando imagens
    • escrevendo em markdown
    • wiki no editor de texto
  • arquitetura
  • banco_dados
  • codigo
  • configuracao
  • contratos
  • design_mockups
  • escopo
  • estudos
  • gerencia
View All Pages