diff --git a/material-sistemas-distribuidos/src/assets/img/37_vsc_debugging.png b/material-sistemas-distribuidos/src/assets/img/37_vsc_debugging.png new file mode 100644 index 0000000..a1f227f Binary files /dev/null and b/material-sistemas-distribuidos/src/assets/img/37_vsc_debugging.png differ diff --git a/material-sistemas-distribuidos/src/assets/img/38_browser_home_empty.png b/material-sistemas-distribuidos/src/assets/img/38_browser_home_empty.png new file mode 100644 index 0000000..28038b9 Binary files /dev/null and b/material-sistemas-distribuidos/src/assets/img/38_browser_home_empty.png differ diff --git a/material-sistemas-distribuidos/src/assets/img/39_browser_nao_conseguiu_conectar.png b/material-sistemas-distribuidos/src/assets/img/39_browser_nao_conseguiu_conectar.png new file mode 100644 index 0000000..704fd66 Binary files /dev/null and b/material-sistemas-distribuidos/src/assets/img/39_browser_nao_conseguiu_conectar.png differ diff --git a/material-sistemas-distribuidos/src/assets/img/40_browser_porta_errada.png b/material-sistemas-distribuidos/src/assets/img/40_browser_porta_errada.png new file mode 100644 index 0000000..6829f82 Binary files /dev/null and b/material-sistemas-distribuidos/src/assets/img/40_browser_porta_errada.png differ diff --git a/material-sistemas-distribuidos/src/assets/img/41_browser_hello_world.png b/material-sistemas-distribuidos/src/assets/img/41_browser_hello_world.png new file mode 100644 index 0000000..16c7111 Binary files /dev/null and b/material-sistemas-distribuidos/src/assets/img/41_browser_hello_world.png differ diff --git a/material-sistemas-distribuidos/src/assets/img/42_browser_konnichiwa.png b/material-sistemas-distribuidos/src/assets/img/42_browser_konnichiwa.png new file mode 100644 index 0000000..f6fc4fd Binary files /dev/null and b/material-sistemas-distribuidos/src/assets/img/42_browser_konnichiwa.png differ diff --git a/material-sistemas-distribuidos/src/css/img.css b/material-sistemas-distribuidos/src/css/img.css index de91d93..2151693 100644 --- a/material-sistemas-distribuidos/src/css/img.css +++ b/material-sistemas-distribuidos/src/css/img.css @@ -1,3 +1,5 @@ img { max-width: 100%; + margin: 0 auto; + display: block; } \ No newline at end of file diff --git a/material-sistemas-distribuidos/src/routes/endpoints/+page.svelte b/material-sistemas-distribuidos/src/routes/endpoints/+page.svelte index 7449e99..f2b7223 100644 --- a/material-sistemas-distribuidos/src/routes/endpoints/+page.svelte +++ b/material-sistemas-distribuidos/src/routes/endpoints/+page.svelte @@ -1 +1,153 @@ -
+ Enfim, vamos escrever nossos primeiros endpoints. +
+ +
+ Durante este capitulo, vamos trabalhar somente em Biblioteca/Program.cs. Nosso objetivo por enquanto é escrever um endpoint customizado, e testar se ele
+ responde corretamente, da forma como desejamos.
+
+ Para começar, abra Biblioteca/Program.cs, e apague todas as linhas deste arquivo. Vamos escrever manualmente todas as linhas necessárias para iniciar a API e configurar um enpdoint de teste.
+
{`var builder = WebApplication.CreateBuilder(args);
+
+ var app = builder.Build();
+
+ app.Run();`}
+
+
+ Escreva, estas linhas no seu Program.cs. Estas são as chamadas de função essenciais para que a sua aplicação aja como uma API Web.
+ Nenhuma outra configuração adicional foi realizada, nem nenhum endpoint foi definido. Sua aplicação neste momento apenas inicia e escuta requisições em uma porta (definida em launchSettings.json).
+
+ Tente executar o projeto através do depurador. Você deve se lembrar do arquivo launchSettings.json que vimos no capítulo anterior. Nele é configurado
+ a porta em que nossa aplicação escutará as requisições no protocolo HTTP, definido em uma configuração semelhante a http://localhost:<numero> (por exemplo, http://localhost:5000).
+ Este número após o sinal de dois-pontos é a porta que sua aplicação estará escutando.
+
+ Abra uma nova aba no seu navegador de internet, e, na barra de endereço, escreva http://localhost:<porta>, onde <porta> é o número que está definido no seu launchSettings.json (no meu caso, este número é 5000, portanto o endereço que
+ eu devo digitar é http://localhost:5000. Você pode alterar o seu launchSettings.json para que a sua porta também seja 5000, ou qualquer outro número que desejar). Se tudo der certo - ou seja, sua aplicação está sendo executada, e a porta que você escreveu no navegador é a correta -
+ você verá uma janela vazia. Isto significa que o navegador conseguiu acessar o endereço que você escreveu, só que, como não definimos nenhum endpoint, nossa aplicação não devolveu nada para o navegador, por isso a janela vazia.
+
+ Se você não está executando o projeto, ou escreveu a porta errada, você provavelmente verá uma mensagem no navegador semelhante a esta: +
+ ++ Ou esta, onde digitei uma porta aleatória: +
+ ++ Se você conseguiu executar o projeto, acessar o seu endereço via navegador, e ver uma aba vazia, então tudo está pronto para que possamos criar nosso primeiro endpoint. +
+ +
+ Vamos escrever um de teste, apenas. Modifique o seu Program.cs para que ele fique desta forma:
+
{`var builder = WebApplication.CreateBuilder(args);
+
+var app = builder.Build();
+
+app.MapGet("/", () =>
+{
+ return "Olá, mundo!";
+});
+
+app.Run();`}
+
+ + Note que adicionamos o seguinte trecho de código: +
+ +{`app.MapGet("/", () =>
+{
+ return "Olá, mundo!";
+});`}
+
+
+ app é uma referência a sua aplicação. Neste objeto podemos realizar várias configurações, além de adicionar quais os endpoints nossa API irá reponder. Neste caso, adicionamos um endpoint
+ através do método MapGet(string, Delegate), que fará com que ele responda ao verbo GET no caminho / (ou seja, a raíz), com uma mensagem simples.
+
+ Acesse a URL da sua aplicação no navegador novamente, como fizemos anteriormente (no meu caso, http://localhost:5000). Você deverá ver a mensagem que você escreveu.
+
+ Vamos fazer nosso endpoint ficar um pouco mais inteligente. Copie o seguinte trecho de código e altere o seu endpoint: +
+ +{`app.MapGet("/", () =>
+{
+ string[] saudacoes = ["Olá!", "こんにちは", "Привет", "Ողջույն"];
+
+ return saudacoes[Random.Shared.Next(saudacoes.Length)];
+});`}
+
+ + Agora, o endpoint irá obter uma mensagem de saudação aleatória a cada vez que você fizer uma nova requisição. Experimente atualizar a página com o endereço da sua aplicação algumas vezes. +
+ +
+ O que fizemos até agora foi criar um endpoint na nossa aplicação utilizando a notação MapGet, que faz parte das APIs de Minimal APIs do dotnet.
+
+ No próximo capítulo, vamos começar a definir os endpoints do escopo que definimos para desenvolver a aplicação da biblioteca. +
+