Skip to content

kau-gusto/API_biblioteca

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Orientação sobre a API Biblioteca

Significado dos status code do servidor

  1. "Ok", 200

    • resultado bem sucedido
    • obs.: pode ser retornado "Ok" ou o conteudo pedido
  2. "Unauthorized", 401

    • o usuario não está cadastrado no sistema
  3. "Forbidden", 403

    • o methodo utilizado não é permitido
  4. "Not Acceptable", 406

  5. "Conflict", 409

Exemplos em Javascript

  • relacionados aos usuarios

    // modelo de usuario
    user = {
      books_ids: [],
      email: "email@email.com",
      id: 0,
      is_admin: true | false,
      name: "username",
      password: "****",
    };
    1. login
    // para usuario e admin
    async function(){
      const data = new FormData();
      data.append("email", email);
      data.append("password", password);
      // configurações do post via fetch
      const options = {
        method: "POST",
        body: data,
      };
      result = await fetch(`${ApiUrl}/login`, options);
      // retornos:
      // "Ok", 200
      // "Unauthorized", 401
    
      /*<...>*/
    }
    1. logout
    // para usuario e admin
    async function(){
      result = await fetch(`${ApiUrl}/logout`);
      // retornos:
      // "Ok", 200
      // "Unauthorized", 401
    
      /*<...>*/
    }
    1. cadastrar usuario
    // somente para admin
    async function(){
      const data = new FormData();
      data.append("email", email);
      data.append("name", name);
      data.append("password", password);
      data.append("is_admin", is_admin);
      // configurações do post via fetch
      const options = {
        method: "POST",
        body: data,
      };
      result = await fetch(`${ApiUrl}/login`, options);
      // retornos:
      // "Ok", 200
      // "Unauthorized", 401
      // "Forbidden", 403
      // "Not Acceptable", 406
      // "Conflict", 409
    
      /*<...>*/
    }
    1. consultar usuarios
    // somente para admin
    async function(){
      result = await fetch(`${ApiUrl}/users`);
      // [user,...], 200
      // "Unauthorized", 401
      // "Forbidden", 403
    
      /*<...>*/
    }
    1. consultar um unico usuario
    // somente para admin
    async function(){
    result = await fetch(`${ApiUrl}/user/${id}`);
      // user, 200
      // "Unauthorized", 401
      // "Forbidden", 403
    
      /*<...>*/
    }
    1. consultar as proprias informações
    // para usuario e admin
    async function(){
      result = await fetch(`${ApiUrl}/info/${id}`);
      // "Ok", 200
      // "Unauthorized", 401
    
      /*<...>*/
    }
  • relacionados aos livros

    // modelo de um livro
    book = {
      author: "name",
      file: ... // arquivo de imagem
      // link da imagem é : {api}/img/<isbn10>.<ext>
      // ALLOWED_EXTENSIONS = ['png', 'jpg', 'jpeg', 'gif']
      cover: "", // link da 'capa' caso nâo envie o arquivo
      edition: "2020",
      isbn10: "a1b2c3d4",
      obs: "", // 'observação' opcional
      on_loan: true | false, // em emprestimo
      sub_title: "1234",
      title: "abcd",
      year: "2021"
    },
    1. consultar livros
    // para usuario e admin
    async function(){
      result = await fetch(`${ApiUrl}/books`);
      // [book,...], 200
      // "Unauthorized", 401
    
      /*<...>*/
    }
    1. consultar um unico livro
    // para usuario e admin
    async function(){
      result = await fetch(`${ApiUrl}/book/${isbn10}`);
      // book, 200
      // "Unauthorized", 401
    
      /*<...>*/
    }
    1. emprestimo
    // para usuario e admin
    async function(){
      const data = new FormData();
      data.append("isbn10", isbn10);
      // configurações do post via fetch
      const options = {
        method: "POST",
        body: data,
      };
      result = await fetch(`${ApiUrl}/book/lending/${isbn10}`);
      // "Ok", 200
      // "Unauthorized", 401
      // "Conflict", 409
    
      /*<...>*/
    }
    1. adicionar livro
    // somente para admin
    async function(){
      const data = new FormData();
      data.append("isbn10", isbn10);
      data.append("title", title);
      data.append("cover", cover); // 'capa' se for opcional, cover=""
      data.append("sub_title", subTitle);
      data.append("obs", obs); // se for opcional, obs=""
      data.append("author", author);
      data.append("edition", edition);
      data.append("year", year);
      // configurações do post via fetch
      const options = {
        method: "POST",
        body: data,
      };
      result = await fetch(`${ApiUrl}/login`, options);
      // "Ok", 200
      // "Unauthorized", 401
      // "Forbidden", 403
      // "Conflict", 409
    
      /*<...>*/
    }
    1. editar livro
    // somente para admin
    async function(){
      const data = new FormData();
      /*
      // igual ao adicionar, só que todas os campos são opcionais
      */
      // configurações do post via fetch
      const options = {
        method: "POST",
        body: data,
      };
      result = await fetch(`${ApiUrl}/login`, options);
      // "Ok", 200
      // "Unauthorized", 401
      // "Forbidden", 403
      // "Conflict", 409
    
      /*<...>*/
    }

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages