Git Product home page Git Product logo

apiheroku's Introduction

API Instalura

Execução

Para executar a API, basta acessar a pasta raiz instalura-api pelo terminal e executar os comandos a seguir para instalar as dependências e iniciar a API, respectivamente:

npm install
npm start

Logo após, a API rodará em http://localhost:3030.

Endpoints

Criação de novo usuário

- REQUEST
[POST] http://localhost:3030/users/signup
[BODY]
{
    userName: 'usuario1',
    password: 'abc123',
    userProfilePhotoUrl: 'http://usuario1.com.br'
}
[HEADERS]
{
    Content-type: 'application/json'
}

- RESPONSE
[SUCESSO]
    [STATUS] 204

[ERRO]
    [STATUS] 50x
    [BODY]
        {
            message: 'Mensagem de erro...'
        }

O campo userName deve conter o valor do campo login, password a senha e userProfilePhotoUrl a URL do perfil do novo usuário. Campos esses encontrados no formulário de cadastro de usuários na aplicação Instalura.

Login

- REQUEST
[POST] http://localhost:3030/users/login
[BODY]
{
    userName: 'usuario1',
    password: 'abc123'
}
[HEADERS]
{
    Content-type: 'application/json'
}

- RESPONSE
[SUCESSO]
    * Autenticado
        [STATUS] 200
        [BODY]
        {
            id: 1,
            name: 'usuario1'
        }
        [HEADERS]
        {
            x-access-token: 'jviorwnjinwn241'
        }

    * Não Autenticado
        [STATUS] 401
        [BODY]
        {
            message: 'Falha na autenticação do usuário usuario1!'
        }
        
[ERRO]
    [STATUS] 50x
    [BODY]
    {
        message: 'Mensagem de erro...'
    }

O cabeçalho x-access-token devolvido é o cabecalho que deve ser trafegado após o login para que a API reconheça o usuário.

Listagem de fotos

- REQUEST
[GET] http://localhost:3030/:userName/photos
[HEADERS]
{
    x-access-token: 'jviorwnjinwn241'
}

- RESPONSE
[SUCESSO]
    [STATUS] 200
    [BODY]
    [
        {
            allowComments: false,
            comments: 0,
            description: "comentario da foto",
            id: 2,
            likes: 0,
            postDate: "2018-02-13T12:30:25.000Z",
            url: "https://instagram.fcgh9-1.fna.fbcdn.net/t51.2885-15/e35/15276770_381074615568085_8052939980646907904_n.jpg?ig_cache_key=MTM5ODY4MDMyNjYyMDA1MDE4OQ%3D%3D.2",
            userId: 1
        }
    ]
[ERRO]
    [STATUS] 50x
    [BODY]
    {
        message: 'Mensagem de erro...'
    }

O retorno da requisição é um array com a listagem de fotos do usuário cujo userName foi informado na URL da requisição com o path param :userName.

Remoção de fotos

- REQUEST
[DELETE] http://localhost:3000/photos/:photoId
[HEADERS]
{
    x-access-token: 'jviorwnjinwn241'
}

- RESPONSE
[SUCESSO]
    * Sucesso na remoção
        [STATUS] 200
    
    * Foto não existente
        [STATUS] 404
        [BODY]
        {
            message: 'Foto não existe!'
        }
    
    * Usuário não autorizado para exclusão
        [STATUS] 403
        [BODY]
        {
            message: 'Forbidden: Sem autorização para a operação!'
        }
    
[ERRO]
    [STATUS] 50x
    [BODY]
    {
        message: 'Mensagem de erro...'
    }

O path param :photoId passado na URL deve ser o ID da foto a ser excluída e é obrigatório a passagem do cabecalho x-access-token.

apiheroku's People

Contributors

marcellevargas 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.