Api
APIs Tradehub
estes exemplos visam ilustrar requisições http para os endpoints do tradehub. Usaremos um exemplo de url para ilustrar as requisições, mas os endpoints tem um padrão prefixado.
http://localhost:5050/tradehub //url de exemplo
consideraremos essa url para nossos exemplos e será chamada de SAVED_URL, apenas para este documento. NOTE: qualquer valor no endpoint que esteja dentro de aspas simples ('') é um path parameter
Itens
um Item é o objeto fundamental do Tradehub. ele é composto por os seguintes valores
type item = {
name : string
areaDesigned : string
costCenter : string
personResponsible : User
description : string
typeOfRegistration : "DONATION" | "SELL"
itemImg : string
expirationDate : string
createdAt: string (optional)
lastModified : string (optional)
prize : number // um item sem valor(doação) é considerado o valor de -1
totalQuantity : number
itemCondition : "Nunca_Usado" | "Pouco_Usado" | "Muito_Usado" //letras capitais fazem diferença(case sensitive)
qualifiers : [
{
qualifierName : string
quantity : string
}
]
cores : string[]
}
- GET itens
url : SAVED_URL/items
retorna todos os itens cadastrados
http://localhost:5050/tradehub/items //exemplo de chamada
- GET item
url : SAVED_URL/items/'id'
retorna o item com o "id" passado como parâmetro
http://localhost:5050/tradehub/items/2 //exemplo de chamada
- GET items from user with id
url : SAVED_URL/items/user/'id'
retorna todos os itens que pertencem a um usuário com o determinado "id"
http://localhost:5050/tradehub/items/user/4 //exemplo de chamada
- GET items from user
url : SAVED_URL/items/user/username/'username'
retorna todos os itens que pertencem a um usuário com o determinado "username"
http://localhost:5050/tradehub/items/user/username/myUsername@bosch.com //exemplo de chamada
- GET filter_items
url : SAVED_URL/filter_items
retorna os itens filtrados de acordo com o(s) query parameters passados na requisição
os parametros disponíveis são:
-
- location required : o lugar em que o filtro ocorre. pode ser "all", "personal", "area", "favorito".
-
- username required : o usuário que está fazendo esta filtragem
-
- itemName : o nome do item a ser filtrado
-
- areas : a(s) área(s) que serão usadas para filtrar os itens
-
- prize : o preço para filtrar os itens
apenas os dois primeiros parâmetros são obrigatórios, os outros são opcionais e um não interfere na busca do outro.
- prize : o preço para filtrar os itens
http://localhost:5050/tradehub/filter_items?areas=[area1,area2]&location="all"&username="myUsername"&prize=20&itemName="Cadeira"
- GET item_image
por motivos de escalabilidade, as imagens não são salvas no banco(pelo menos não o arquivo binário da imagem). o que é salvo é o nome da imagem que foi cadastrada junto a uma sequencia aleatória de digitos(ex: myImagem412551.png). Este endpoint serve para pegar uma imagem pelo nome
url : SAVED_URL/items/imgItems/'filename'
retorna o arquivo binário da imagem
http://localhost:5050/tradehub/items/imgItems/myimagem412551.png
- GET items from area
url : SAVED_URL/'area'/items
retorna todos os itens cadastrados de uma determinada "area"
http://localhost:5050/tradehub/ETS/items //exemplo de chamada
- POST item
url : SAVED_URL/items
cadastra um item no banco
o Body da requisição deve conter um JSON do tipo "item"
http://localhost:5050/tradehub/items //exemplo de chamada
- POST item_image
url : SAVED_URL/items/imgItems
Salva o arquivo de imagem de um item.
O body deve conter um encoded formado por um arquivo Multipart File
http://localhost:5050/tradehub/items/imgItems //exemplo de chamada
- PUT item
url : SAVED_URL/items/'id'
atualiza as informações de um item. NOTE: o item inteiro precisa ser passado(requisição PUT, não PATCH)
o body deve conter um JSON do tipo "Item"
http://localhost:5050/tradehub/items/2 //exemplo de chamada