{ "cells": [ { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "# 使用 ASP.NET Croe WebApi" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "## 添加 Nuget 包" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "dotnet_interactive": { "language": "csharp" }, "polyglot_notebook": { "kernelName": "csharp" } }, "outputs": [], "source": [ "// 可以先添加包源\n", "#i \"https://api.nuget.org/v3/index.json\"\n", "\n", "//添加 Nuget 包\n", "#r \"nuget: microsoft.dotNet.interactive.aspnetcore,*-*\"" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "## 使用端点,放出API" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "dotnet_interactive": { "language": "csharp" }, "polyglot_notebook": { "kernelName": "csharp" } }, "outputs": [], "source": [ "#!aspnet\n", "\n", "//引入之后就会暴露 aspnetcore 的东西,比如 App Endpoints WebApplication 等等,可以使用\n", "\n", "Endpoints.MapGet(\"/\", async context =>\n", "{\n", " await context.Response.WriteAsync($\"Hello from MapGet!\");\n", "});\n", "\n", "var responseMessage1 = await HttpClient.GetAsync(\"/\");\n", "\n", "responseMessage1.Display();" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "dotnet_interactive": { "language": "csharp" }, "polyglot_notebook": { "kernelName": "csharp" } }, "outputs": [], "source": [ "#!aspnet\n", "\n", "Endpoints.MapGet(\"/\", async context =>\n", "{\n", " await context.Response.WriteAsync($\"Hello from MapGet!\");\n", "});\n", "\n", "Endpoints.MapInteractive(\"/\", async context =>\n", "{\n", " await context.Response.WriteAsync($\"Hello from MapInteractive!\");\n", "});\n", "\n", "Endpoints.MapInteractive(\"/\", async context =>\n", "{\n", " await context.Response.WriteAsync($\"Hello from MapInteractive 2!\");\n", "});\n", "\n", "var responseMessage2 = await HttpClient.GetAsync(\"/\");\n", "\n", "responseMessage2.Display();" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "dotnet_interactive": { "language": "csharp" }, "polyglot_notebook": { "kernelName": "csharp" } }, "outputs": [], "source": [ "#!aspnet\n", "//using Microsoft.DotNet.Interactive.AspNetCore;\n", "\n", "App.Use(next =>\n", "{\n", " return async httpContext =>\n", " {\n", " await httpContext.Response.WriteAsync(\"Hello from middleware!\");\n", " };\n", "});\n", "\n", "var responseMessage3 = await HttpClient.GetAsync(\"/\");\n", "responseMessage3.Display();\n", "\n", "var responseBody3 = await responseMessage3.Content.ReadAsStringAsync();\n", "responseBody3.Display();" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "dotnet_interactive": { "language": "csharp" }, "polyglot_notebook": { "kernelName": "csharp" } }, "outputs": [], "source": [ "#!aspnet\n", "\n", "App.Use(next =>\n", "{\n", " return async httpContext =>\n", " {\n", " await httpContext.Response.WriteAsync(\"Hello from middleware!\");\n", " };\n", "});\n", "\n", "Endpoints.MapGet(\"/\", async context =>\n", "{\n", " await context.Response.WriteAsync($\"Hello from MapGet!\");\n", "});\n", "\n", "var responseMessage4 = await HttpClient.GetAsync(\"/\");\n", "responseMessage4.Display();\n", "\n", "var responseBody4 = await responseMessage3.Content.ReadAsStringAsync();\n", "responseBody4.Display();\n", "\n", "App.Use(next =>\n", "{\n", " return async httpContext =>\n", " {\n", " await httpContext.Response.WriteAsync(\"Hello from middleware!\");\n", " };\n", "});\n", "\n", "var responseMessage2 = await HttpClient.GetAsync(\"/\");\n", "responseMessage2.Display();" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "dotnet_interactive": { "language": "csharp" }, "polyglot_notebook": { "kernelName": "csharp" } }, "outputs": [], "source": [ "#!aspnet\n", "\n", "Endpoints.MapGet(\"/\", async context =>\n", "{\n", " await context.Response.WriteAsync($\"Hello from MapGet!\");\n", "});\n", "\n", "await HttpClient.GetAsync(\"/\")" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "dotnet_interactive": { "language": "csharp" }, "polyglot_notebook": { "kernelName": "csharp" } }, "outputs": [], "source": [ "#!aspnet\n", "Endpoints.MapGet(\"/\", async context =>\n", "{\n", " await context.Response.WriteAsync($\"Hello from MapGet!\");\n", "});\n", "\n", "await HttpClient.GetAsync(\"/\")" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "dotnet_interactive": { "language": "csharp" }, "polyglot_notebook": { "kernelName": "csharp" } }, "outputs": [], "source": [ "#!aspnet\n", "\n", "HttpClient.BaseAddress" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "dotnet_interactive": { "language": "csharp" }, "polyglot_notebook": { "kernelName": "csharp" } }, "outputs": [], "source": [ "#!aspnet\n", "\n", "App.Display()" ] } ], "metadata": { "kernelspec": { "display_name": ".NET (C#)", "language": "C#", "name": ".net-csharp" }, "language_info": { "name": "polyglot-notebook" }, "orig_nbformat": 4, "polyglot_notebook": { "kernelInfo": { "defaultKernelName": "csharp", "items": [ { "aliases": [], "name": "csharp" }, { "aliases": [], "name": "razor" } ] } } }, "nbformat": 4, "nbformat_minor": 2 }