Skip to content

LJStudies/sample-store

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 

Repository files navigation

SampleStoreAPI

Exemplo básico de Web API em ASP .NET Core 2.0

Este exemplo traz uma Web API (SampleStoreDI) inspirada na arquitetura REST (Representational State Transfer) desenvolvida em Microsoft Visual Studio ASP.NET Core 2.0, que acessa uma base de dados de produtos fictícia através de HTTP Methods Request (GET, POST, PUT, DELETE), utilizando o formato JSON (JavaScript Object Notation).

1. Modelos de Dados

O produto segue o seguinte modelo, em formato JSON:

{ 
    "id" : Identificador do produto,
    "name" : "Nome do produto",
    "price" : Preço do Produto,
    "description" : "Descrição do produto",
    "imageUrl" : "Url para a imagem do produto"
}

Exemplo:

{
    "id" : 4,
    "name" : "Impressora",
    "description" : "Impressora Colorida",
    "price" : 1199.99,
    "imageUrl" : "https://imagem_impressora.jpg"
}

2. Design Pattern e Acesso aos Dados

Esta aplicação implementa um exemplo de Repository Pattern 1 , que oferece maior desacoplamento entre os dados (Model) e o controle da aplicação (controller), fazendo uso da injeção de dependência nativa do ASP.NET Core 2.0.

A aplicação está hospedada no ambiente da Microsoft Azure no endereço http://ljasmimsamplestore.azurewebsites.net/api/products e pode ser acessada da seguinte forma:

  • HTTP GET api/products - Recupera uma lista de produtos;
  • HTTP GET api/products/{id} - Recupera um produto específico;
  • HTTP POST api/products - Criar um novo produto;
  • HTTP PUT api/products/{id} - Atualiza um produto específico;
  • HTTP DELETE api/produtcs/{id} - Exclui um produto específico.

3. Aplicação Cliente

Para consumo da WebAPI foi construída no Visual Studio 2017 uma aplicação cliente básica (SampleStoreClient) utilizando Angular2. O acesso a API está implementado no arquivo SampleStoreClient/ClientApp/app/services/product.service.ts, através de requisições HTTP.

    //Get
    getProducts() {
        return this.http.get("http://ljasmimsamplestore.azurewebsites.net/api/products")
            .map(data => <IProduct[]>data.json());
    }

    //GetById
    getProduct(productId: number) {
        return this.http.get(`http://ljasmimsamplestore.azurewebsites.net/api/products/${productId}`)
            .map(data => <IProduct>data.json());
    }

    //Post
    addProduct(product: IProduct) {
        return this.http.post("http://ljasmimsamplestore.azurewebsites.net/api/products", product);
    }

    //Delete
    deleteProduct(productId: number) {
        return this.http.delete(`http://ljasmimsamplestore.azurewebsites.net/api/products/${productId}`);
    }

    //Put
    editProduct(product: IProduct) {
        return this.http.put(`http://ljasmimsamplestore.azurewebsites.net/api/products/${product.id}`, product);
    }

A aplicação cliente também encontra-se hospedada no ambiente da Microsoft Azure.

About

Exemplo básico de Web API em ASP .NET Core 2.0

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published