You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
PolyglotNotebooksStudy/Docs/多语言笔记.4.1.使用WebApi.ipynb

297 lines
6.2 KiB
Plaintext

{
"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
}