Os JSONs que usei como banco de dados foram commitados vazios, para poderem testar melhor todos os endpoints da maneira que quiserem.
API desenvolvida em Java usando o Framework Spring, para uma rede social de vendedores e compradores do MeLi.
Cadastra um novo usuário do tipo comprador. Recebe um JSON no formato:
{ "username": "testBuyer" }
Retorna todas as contas registradas do tipo comprador. Não recebe nenhum parâmetro.
Cadastra um novo usuário do tipo vendedor. Recebe um JSON no formato:
{ "username": "testSeller" }
Retorna todas as contas registradas do tipo vendedor. Não recebe nenhum parâmetro.
Retorna todas as contas registradas na rede social MeLi.
Recebe como parâmetro o ID do usuário que vai seguir um vendedor, e o ID do vendedor a ser seguidor.
Recebe como parâmetro um ID de vendedor e retorna quantos seguidores esse vendedor em um JSON do seguinte formato:
{ "userId": 1, "username": "testSeller", followersCount: 5 }
Recebe como parâmetro um ID de vendedor e retorna uma lista de usuários que seguem ele. JSON no formato:
{ "userId" 1, "username": "testSeller", "followers": [ { "userId": 2, "username "testBuyer" }, { "userId": 3, "username": "Seller" } ] }
Essa lista pode ser ordenada no seguinte Endpoint:
Com as seguintes possibilidades de ordenação:
- name_asc
- name_desc
Recebe como parâmetro um ID de usuário e retorna uma lista de vendedores que esse usuário segue. JSON no formato:
{ "userId" 1, "username": "testSeller", "followed": [ { "userId": 1, "username "testSeller" }, { "userId": 3, "username": "Seller" } ] }
Essa lista pode ser ordenada no seguinte Endpoint:
Com as seguintes possibilidades de ordenação:
- name_asc
- name_desc
Cria um post de venda de um determinado produto para o vendedor. Recebe um json no formato: { "userId": 1, "postId": 1, "date": "06-06-2021", "detail": { "productId": 1, "productName": "Super Mario 3D All Stars", "type": "Games", "brand": "Nintendo", "color": "none", "notes": "Nintendo Switch game" }, "category": 100, "price": 199.99 }
Recebe como parâmetro um ID de usuário, e retorna um JSON contendo os vendedores que esse usuário segue e os posts feitos por eles nas últimas duas semanas:
{ "userId": 1, "posts": [ { "postId": 1, "date": "2021-06-07", "detail": { "productId": 1, "productName": "Super Mario 3D All Stars", "type": "Games", "brand": "Nintendo", "color": "none", "notes": "Nintendo Switch game" }, "category": 100, "price": 199.99, "hasPromo": false, "discount": 0.0 }, { "postId": 2, "date": "2021-05-28", "detail": { "productId": 1, "productName": "Super Mario 3D All Stars", "type": "Games", "brand": "Nintendo", "color": "none", "notes": "Nintendo Switch game" }, "category": 100, "price": 199.99, "hasPromo": false, "discount": 0.0 } ] }
Essa lista pode ser ordenada no seguinte Endpoint:
Com as seguintes possibilidades de ordenação:
- date_asc
- date_desc
Recebe como parâmetro um ID de usuário que deseja deixar de seguir um vendedor, e o ID desse vendedor que receberá um unfollow.
Permite que o vendedor faça um post de um produto que entrou em promoção e informe o valor de desconto. Recebe um JSON no seguinte formato:
{ "userId": 1, "postId": 2, "date": "06-06-2021", "detail": { "productId": 1, "productName": "Super Mario 3D All Stars", "type": "Games", "brand": "Nintendo", "color": "none", "notes": "Nintendo Switch game" }, "hasPromo": true, "discount": 0.10, "category": 100, "price": 199.99 }
Recebe como parâmetro o ID do vendedor e retorna um JSON contendo quantos produtos em promoção esse vendedor postou:
{ "userId": 1, "username": "testSeller", "promoProductsCount": 15 }
Recebe como parâmetro o ID do vendedor e retorna uma lista contendo todos os produtos em promoção que esse vendedor postou para venda.
{ "userId": 1, "username": "testSeller", "promoPosts": [ { "postId": 2, "date": "2021-06-06", "detail": { "productId": 1, "productName": "Super Mario 3D All Stars", "type": "Games", "brand": "Nintendo", "color": "none", "notes": "Nintendo Switch game" }, "category": 100, "price": 199.99, "hasPromo": true, "discount": 0.1 } ] }