{"id":839,"date":"2024-06-19T17:22:17","date_gmt":"2024-06-19T08:22:17","guid":{"rendered":"https:\/\/mvc.auctionpro.co.kr\/?p=839"},"modified":"2024-06-19T17:25:56","modified_gmt":"2024-06-19T08:25:56","slug":"swagger%ec%97%90-description-%ec%84%b8%ed%8c%85","status":"publish","type":"post","link":"https:\/\/mvc.auctionpro.co.kr\/?p=839","title":{"rendered":"Swagger\uc5d0  Description \uc138\ud305"},"content":{"rendered":"\n<h3 class=\"wp-block-heading\">Overview : NetCore 6.0 \uae30\uc900\uc73c\ub85c \uc544\ub798\uc640 \uac19\uc774 \ub098\uc624\uac8c \ud558\uae30<\/h3>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"558\" src=\"https:\/\/mvc.auctionpro.co.kr\/wp-content\/uploads\/2024\/06\/image-1-1024x558.png\" alt=\"\" class=\"wp-image-841\" srcset=\"https:\/\/mvc.auctionpro.co.kr\/wp-content\/uploads\/2024\/06\/image-1-1024x558.png 1024w, https:\/\/mvc.auctionpro.co.kr\/wp-content\/uploads\/2024\/06\/image-1-300x163.png 300w, https:\/\/mvc.auctionpro.co.kr\/wp-content\/uploads\/2024\/06\/image-1-768x418.png 768w, https:\/\/mvc.auctionpro.co.kr\/wp-content\/uploads\/2024\/06\/image-1-1536x837.png 1536w, https:\/\/mvc.auctionpro.co.kr\/wp-content\/uploads\/2024\/06\/image-1.png 1593w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1.csproj \ud30c\uc77c\uc744 Edit\ub85c \uc5f4\uc5b4 PropertyGroup \uc5d0 \ucd94\uac00 <\/h3>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:c# decode:true \">    &lt;GenerateDocumentationFile&gt;true&lt;\/GenerateDocumentationFile&gt;\n    &lt;NoWarn&gt;$(NoWarn);1591&lt;\/NoWarn&gt;<\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">\ucd94\uac00\ud6c4 \ub0b4\uc6a9 \ubc0f \uc124\uba85<\/h3>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:c# decode:true \">&lt;Project Sdk=\"Microsoft.NET.Sdk.Web\"&gt;\n\n  &lt;PropertyGroup&gt;\n    &lt;TargetFramework&gt;net6.0&lt;\/TargetFramework&gt;\n    &lt;Nullable&gt;enable&lt;\/Nullable&gt;\n    &lt;ImplicitUsings&gt;enable&lt;\/ImplicitUsings&gt;\n    &lt;OutputType&gt;Exe&lt;\/OutputType&gt;\n    &lt;GenerateDocumentationFile&gt;true&lt;\/GenerateDocumentationFile&gt;\n    &lt;NoWarn&gt;$(NoWarn);1591&lt;\/NoWarn&gt;\n  &lt;\/PropertyGroup&gt;\n\n::: \uc544\ub798 \uc0dd\ub7b5 ::<\/pre><\/div>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"831\" height=\"581\" src=\"https:\/\/mvc.auctionpro.co.kr\/wp-content\/uploads\/2024\/06\/image-2.png\" alt=\"\" class=\"wp-image-842\" srcset=\"https:\/\/mvc.auctionpro.co.kr\/wp-content\/uploads\/2024\/06\/image-2.png 831w, https:\/\/mvc.auctionpro.co.kr\/wp-content\/uploads\/2024\/06\/image-2-300x210.png 300w, https:\/\/mvc.auctionpro.co.kr\/wp-content\/uploads\/2024\/06\/image-2-768x537.png 768w\" sizes=\"auto, (max-width: 831px) 100vw, 831px\" \/><\/figure>\n\n\n\n<p><strong>&lt;GenerateDocumentationFile&gt;true&lt;\/GenerateDocumentationFile&gt;<\/strong>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>XML \ubb38\uc11c \ud30c\uc77c \uc0dd\uc131\uc744 \ud65c\uc131\ud654\ud569\ub2c8\ub2e4. \ucf54\ub4dc \ub0b4 XML \uc8fc\uc11d\uc744 \uae30\ubc18\uc73c\ub85c \ubb38\uc11c \ud30c\uc77c\uc744 \uc0dd\uc131\ud569\ub2c8\ub2e4.<\/li>\n<\/ul>\n\n\n\n<p><strong>&lt;NoWarn&gt;$(NoWarn);1591&lt;\/NoWarn&gt;<\/strong>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\ud2b9\uc815 \uacbd\uace0\ub97c \ubb34\uc2dc\ud558\ub3c4\ub85d \uc124\uc815\ud569\ub2c8\ub2e4. \uc5ec\uae30\uc11c 1591 \uacbd\uace0\ub294 &#8220;XML \uc8fc\uc11d\uc774 \uc5c6\ub294 \uacf5\uac1c \uba64\ubc84&#8221;\uc5d0 \ub300\ud55c \uacbd\uace0\uc774\uba70, \uc774\ub97c \ubb34\uc2dc\ud558\ub3c4\ub85d \uc124\uc815\ud569\ub2c8\ub2e4.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">2.Program.cs \uc544\ub798\uc640 \uc218\uc815 <\/h3>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:c# decode:true \" >builder.Services.AddControllers().AddXmlDataContractSerializerFormatters();\n\nbuilder.Services.AddSwaggerGen(c =&gt;\n{\n    c.SwaggerDoc(\"v1\", new OpenApiInfo\n    {\n        Title = \"MemoryCache MsSQL MySQL\",\n        Version = \"1.0\",\n        Description = \"\uba54\ubaa8\ub9ac \uce90\uc2f1 \ud14c\uc2a4\ud2b8 Json\",\n        TermsOfService = new Uri(\"https:\/\/www.auctionpro.co.kr\"),\n        Contact = new OpenApiContact\n        {\n            Email = \"noreply@auctionpro.co.kr\"\n        },\n        License = new OpenApiLicense\n        {\n            Name = \"\ub77c\uc774\uc13c\uc2a4\",\n            Url = new Uri(\"https:\/\/www.auctionpro.co.kr\")\n        }\n    });\n    var xmlFile = $\"{Assembly.GetExecutingAssembly().GetName().Name}.xml\";\n    var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile);\n    c.IncludeXmlComments(xmlPath);\n});\n\nif (app.Environment.IsDevelopment())\n{   \n    app.UseDeveloperExceptionPage();\n    app.UseSwagger();\n    app.UseSwaggerUI(c =&gt; c.SwaggerEndpoint(\"\/swagger\/v1\/swagger.json\", \"MemoryCache MsSQL MySQL v1\"));\n}<\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">\ucd5c\uc885 \ub0b4\uc6a9 \uc608\uc81c<\/h3>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:c# decode:true \">using InMemoryCacheCore.Infrastructure.V01;\nusing InMemoryCacheCore.Services02.V13;\nusing Microsoft.OpenApi.Models;\nusing System.Reflection;\n\nvar builder = WebApplication.CreateBuilder(args);\n\n\/\/ Add services to the container.\nbuilder.Services.AddControllers();\n\/\/ Learn more about configuring Swagger\/OpenAPI at https:\/\/aka.ms\/aspnetcore\/swashbuckle\nbuilder.Services.AddEndpointsApiExplorer();\nbuilder.Services.AddSwaggerGen();\n\nbuilder.Services.AddHttpClient();\nbuilder.Services.AddScoped&lt;ICacheProvider, CacheProvider&gt;(); \/\/infrastructure\nbuilder.Services.AddScoped&lt;IHttpClient, InMemoryCacheCore.Infrastructure.V01.HttpClient&gt;();     \/\/infrastructure\n\nbuilder.Services.AddScoped&lt;ICacheGetSet, CacheGetSet&gt;(); \/\/\ucd94\uac00\nbuilder.Services.AddScoped&lt;ICacheGetSet, CacheGetSet&gt;(); \/\/\ucd94\uac00\nbuilder.Services.AddMemoryCache();\n\nbuilder.Services.AddControllers().AddXmlDataContractSerializerFormatters();\n\nbuilder.Services.AddSwaggerGen(c =&gt;\n{\n    c.SwaggerDoc(\"v1\", new OpenApiInfo\n    {\n        Title = \"MemoryCache MsSQL MySQL\",\n        Version = \"1.0\",\n        Description = \"\uba54\ubaa8\ub9ac \uce90\uc2f1 \ud14c\uc2a4\ud2b8 Json\",\n        TermsOfService = new Uri(\"https:\/\/www.auctionpro.co.kr\"),\n        Contact = new OpenApiContact\n        {\n            Email = \"noreply@auctionpro.co.kr\"\n        },\n        License = new OpenApiLicense\n        {\n            Name = \"\ub77c\uc774\uc13c\uc2a4\",\n            Url = new Uri(\"https:\/\/www.auctionpro.co.kr\")\n        }\n    });\n    var xmlFile = $\"{Assembly.GetExecutingAssembly().GetName().Name}.xml\";\n    var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile);\n    c.IncludeXmlComments(xmlPath);\n});\n\nvar app = builder.Build();\n\n\/\/ Configure the HTTP request pipeline.\nif (app.Environment.IsDevelopment())\n{   \n    app.UseDeveloperExceptionPage();\n    app.UseSwagger();\n    app.UseSwaggerUI(c =&gt; c.SwaggerEndpoint(\"\/swagger\/v1\/swagger.json\", \"MemoryCache MsSQL MySQL v1\"));\n}\n\n\/\/if (!app.Environment.IsDevelopment())\n\/\/{\napp.UseHttpsRedirection();\n\/\/}\n\napp.UseAuthorization();\n\napp.MapControllers();\n\napp.Run();\n<\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">3.Controller.cs \uc5d0 \uc544\ub798 \ub0b4\uc6a9 \ucd94\uac00<\/h3>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:c# decode:true \">        \/\/\/ &lt;summary&gt;\n        \/\/\/ \uacf5\ud56d\ucf54\ub4dc \uac00\uc838\uc624\uae30\n        \/\/\/ &lt;\/summary&gt;\n        \/\/\/ &lt;param name=\"AAA\"&gt;&lt;font color='red'&gt;*&lt;\/font&gt;AAA\uac12 \uc124\uba85&lt;\/param&gt;\n        \/\/\/ &lt;param name=\"BBB\"&gt;BBB\uac12 \uc124\uba85&lt;\/param&gt;\n        \/\/\/ &lt;returns&gt;&lt;\/returns&gt;<\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">\ucd5c\uc885 \ub0b4\uc6a9 \uc608\uc81c<\/h3>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:c# decode:true \">using InMemoryCacheCore.Models;\nusing InMemoryCacheCore.Services02.V13;\nusing Microsoft.AspNetCore.Mvc;\n\nnamespace InMemoryCacheCore.Controllers\n{\n    [Route(\"api\/[controller]\")]\n    [ApiController]\n    public class AirlineController : ControllerBase\n    {\n        private readonly ICacheGetSet _cacheGetSet;\n\n        private readonly string _cacheKey = \"_ACode\";\n\n        public AirlineController(ICacheGetSet cacheGetSet )\n        {\n            _cacheGetSet = cacheGetSet ?? throw new ArgumentNullException(nameof(cacheGetSet));\n        }\n\n        \/\/\/ &lt;summary&gt;\n        \/\/\/ \uacf5\ud56d\ucf54\ub4dc \uac00\uc838\uc624\uae30\n        \/\/\/ &lt;\/summary&gt;\n        \/\/\/ &lt;param name=\"AAA\"&gt;&lt;font color='red'&gt;*&lt;\/font&gt;AAA\uac12 \uc124\uba85&lt;\/param&gt;\n        \/\/\/ &lt;param name=\"BBB\"&gt;BBB\uac12 \uc124\uba85&lt;\/param&gt;\n        \/\/\/ &lt;returns&gt;&lt;\/returns&gt;\n        [HttpGet]\n        public async Task&lt;IEnumerable&lt;Code&gt;&gt; Get(string AAA, string BBB)\n        {\n            try {\n                IEnumerable&lt;Code&gt;? codes = await _cacheGetSet.CacheGet(_cacheKey);\n                return codes;\n                }\n                catch {\n                    return Enumerable.Empty&lt;Code&gt;();\n                }\n        }\n\n    }\n}\n<\/pre><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Overview : NetCore 6.0 \uae30\uc900\uc73c\ub85c \uc544\ub798\uc640 \uac19\uc774 \ub098\uc624\uac8c \ud558\uae30 1.csproj \ud30c\uc77c\uc744 Edit\ub85c \uc5f4\uc5b4 PropertyGroup \uc5d0 \ucd94\uac00 \ucd94\uac00\ud6c4 \ub0b4\uc6a9 \ubc0f \uc124\uba85 &lt;GenerateDocumentationFile&gt;true&lt;\/GenerateDocumentationFile&gt;: &lt;NoWarn&gt;$(NoWarn);1591&lt;\/NoWarn&gt;: 2.Program.cs \uc544\ub798\uc640 \uc218\uc815 \ucd5c\uc885 \ub0b4\uc6a9 \uc608\uc81c 3.Controller.cs \uc5d0 \uc544\ub798 \ub0b4\uc6a9 \ucd94\uac00 \ucd5c\uc885 \ub0b4\uc6a9 \uc608\uc81c<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-839","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/mvc.auctionpro.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/839","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mvc.auctionpro.co.kr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mvc.auctionpro.co.kr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mvc.auctionpro.co.kr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mvc.auctionpro.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=839"}],"version-history":[{"count":3,"href":"https:\/\/mvc.auctionpro.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/839\/revisions"}],"predecessor-version":[{"id":846,"href":"https:\/\/mvc.auctionpro.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/839\/revisions\/846"}],"wp:attachment":[{"href":"https:\/\/mvc.auctionpro.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=839"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mvc.auctionpro.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=839"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mvc.auctionpro.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=839"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}