ASP NET MVC CONSUMO WEB API

 Tópico anterior Próximo tópico Novo tópico

ASP NET MVC CONSUMO WEB API

C#

 Compartilhe  Compartilhe  Compartilhe
#485767 - 04/12/2018 20:36:49

MRSILVA
MARINGA
Cadast. em:Julho/2015


Olá.
Estou com algumas dúvidas fico muito grato se alguém com experiência no assunto puder me ajudar.

Tenho uma aplicação que camada view e feita em WPF (MVVM) que está consumindo uma WEBAPI (NET CORE).
Estou iniciando meu aprendizado com aplicações WEB e vou desenvolver um novo projeto ASP NET MVC (NET CORE) vou utilizar com base o meu projeto em WPF (modelos, métodos CRUD regra de negocio), sei que são duas tecnologias diferentes e o desenvolvimento WEB (MVC) é diferente. A minha dúvida é referente o consumo da minha WEBAPI, vou dar um exemplo:

Registro de um produto utilizando minha WEBAPI  o correto  é a minha classe model  que está no meu projeto ASP NET MVC chamar meu método da WEBAPI ou fazer esse registro chamando minha WEBAPI diretamente pelo (cliente) JAVASCRIPT através do AJAX (métodos assicronomos)?  Ou seja,  dessa forma meu projeto ASP NET MVC  em alguns casos serviria apenas para fornecer as visualizações.  Estou com essa dúvida  porque achei sem sentido utilizar em todos os métodos ter que acessar minhas controller do meu projeto ASP NET MVC (NET CORE) e depois chamar minha outra controller da WEB API?
Caso minha dúvida não tenha sentido desculpe  minha falta de conhecimento é que estou a semana inteira estudando para iniciar meu projeto da forma correta, e não achei na internet discussão sobre esse assunto.
Desde já agradeço.




Resposta escolhida #485768 - 04/12/2018 21:03:33

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
Não sei se você entendeu bem o que é uma WebAPI...
Imagine um módulo do VB6, que tenha os métodos:

Public Function IncluiCliente(Codigo As Integer, Nome As String)
///aqui faz toda a parte de cadastrar o cliente

Public Function BuscaCliente(Codigo As Integer) As RecordSet
///Aqui busca um cliente por código



Então você pega esse módulo todo e coloca numa DLL e compila. Daí você referencia a DLL no seu projeto, declara uma variável com ela e usa:

Dim variavel As MinhaDLL
Set variavel = New MinhaDLL

variavel.IncluiCliente(txtCodigoCliente.Text, txtDescricaoCliente.Text) 'Aqui simplesmente cadastra um cliente

Dim rs As New ADODB.RecordSet = variavel.BuscaCliente(99) 'Aqui, retornaria um cliente em um recordset


Obviamente omiti o código em si, mas já se pode ter uma noção do que quero dizer. Tipo, é assim que você faria no VB6 para usar uma DLL, certo? Pois então, uma WebAPI é uma idéia praticamente igual. A diferença é que não tem referência propriamente dita, você simplesmente chama os métodos dela.

_______________________________________________________________________
Gostaria de ter seu sistema Desktop "traduzido" para uma interface web? Podemos conversar...
Virei Oráculo!
The end is nigh, be ready for the nukes!


#485769 - 04/12/2018 21:51:24

MRSILVA
MARINGA
Cadast. em:Julho/2015


Kerplunk obrigado pelo retorno.

Sim acredito que sei que uma WEB API, más não consegui entender a relação do seu exemplo com minha pergunta, não estou com duvidas de como usar a WEBAPI literalmente, isso já faço no meu projeto desktop , mas sim como aplicar a mesma da melhor forma possível em um projeto WEB com padrão MVC, me parece haver uma redundância em alguns casos  chamar minha WEBAPI no servidor  do projeto MVC sendo que poderia fazer isso diretamente no cliente,  mas não sei se é certo ou se posso ter alguma complicação fazer isso diretamente via AJAX.

Desde já agradeço.



#485771 - 04/12/2018 23:55:30

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
Ah, agora te entendi. Se a aplicação(client) está no mesmo server, você poderia perfeitamente gravar e ler "direto", mas pense que uma WebAPI não é um simples CRUD. Nela, pode ter várias de regras de negócio, controle de direitos de usuário, chamadas à outros serviços, filas, enfim uma porrada de coisa que, por via de regra, deveria estar em um só lugar e servir para todo e qualquer client.

Entendo seu ponto de vista de parecer meio "exagerado", mas veja pelo ponto de vista que WebAPI não é só repositório de dados.

_______________________________________________________________________
Gostaria de ter seu sistema Desktop "traduzido" para uma interface web? Podemos conversar...
Virei Oráculo!
The end is nigh, be ready for the nukes!


#485784 - 06/12/2018 00:59:16

MRSILVA
MARINGA
Cadast. em:Julho/2015


Mais uma vez obrigado pela ajuda.



 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por MRSILVA em 06/12/2018 00:59:29