我们可以将发布到Azure Web App的.net核心API导入APIM

问题描述 投票:0回答:2

我已经创建了Web API并使用VS部署到Azure。 API在该Web App中发布/托管。我想将该API(Web App)导入APIM,但我只看到选择“Logic App”,“API App”和“Function App”的选项。 Web App没有任何内容。我们可以将该Web应用程序导入APIM吗?

谢谢Sakaldeep

azure api azure-api-management
2个回答
0
投票

没有。直接你不能。但是通过选择空白API选项获取URL并进行配置,或者修改代码并获取Swagger文件并导入它。


0
投票

步骤1-添加SWAGGER(OPEN API接口)第一步是添加swagger,它是一个开放的API接口,可以在API管理中导入。为了首先添加swagger,我们必须在现有的应用程序中安装NuGet包。

步骤2-编辑启动类以在我们的应用程序中使用SWAGGER导航到Startup.cs或Startup类(如果已将其自定义为其他名称)并更改ConfigureServices和Configure方法以将Swagger添加到WebAPI应用程序,如以下两种方法。

配置服务:

public void ConfigureServices(IServiceCollection services) { 。services.AddMvc()SetCompatibilityVersion(CompatibilityVersion.Version_2_1);

    // Register the Swagger generator, defining 1 or more Swagger documents             
    services.AddSwaggerGen(c => 



    {                 
        c.SwaggerDoc("v1", new Info { Title = "My API", Version = "v1" });             
        }); 

    // Register the Swagger generator, defining 1 or more Swagger documents             
    services.AddSwaggerGen(c =>             
    {                 
        c.SwaggerDoc("MyApi", new Info                 
        {                     
            Version = "v1",                     
            Title = "My API",                    
             Description = "A simple example ASP.NET Core Web API",                     
             TermsOfService = "None",                     
             Contact = new Contact                     
             {                         
                 Name = "mfouad",                        
                  Email = string.Empty,                        
                   Url = ""                     
                   },                    
                    License = new License                    
                     {                         
                         Name = "Use under LICX",                        
                          Url = "https://example.com/license"                     
                          }                
                           });            
                            }); 
} 

并配置:

public void Configure(IApplicationBuilder app, IHostingEnvironment env)         
        {             
            if (env.IsDevelopment())             
            {                 
                app.UseDeveloperExceptionPage();             
                }             
                else            
                 {                 
                     app.UseHsts();            
                      } 

            // Enable middleware to serve generated Swagger as a JSON endpoint.             
            app.UseSwagger(); 

            // Enable middleware to serve swagger-ui (HTML, JS, CSS, etc.),             
             // specifying the Swagger JSON endpoint.             
             app.UseSwaggerUI(c =>             
             {                 
                 c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");             
                 }); 


                app.UseHttpsRedirection(); 
                app.UseMvc(); 
        }

步骤3-在AZURE APP SERVICE中发布这些更改

  1. 右键单击该项目,然后选择“发布”以将新更改添加到App服务。
  2. 如果不存在App Service,请选择并存在或创建新的App服务
  3. 将其发布到App Service。
  4. 发布后,请确保http:// {YourAppServiceName} .azurewebsites.net / swagger加载API界面页面
  5. 导航到https:// {YourAppServiceName} .azurewebsites.net / swagger / v1 / swagger.json

第4步 - 将APIS添加到API管理

  1. 导航到Azure中的API Management资源
  2. 从左侧窗格API中选择
  3. 单击OpenAPI
  4. 您将看到一个表单,以填充您可以将json文件下载到本地计算机并使用swagger编辑器工具验证它,如果导入该文件有任何问题,它可以在上传之前为您提供有关要修复的项目的建议。
  5. 以下面的形式添加Swagger.json端点或文件,然后单击“创建”。
  6. 将API端点添加到API管理中单击功能区中的设置,然后在Web服务URL字段中添加应用服务URL,如下图所示。
  7. 通过单击功能区中的“测试”来测试API管理中的API,然后根据下图选择其中一个API发送示例请求。
© www.soinside.com 2019 - 2024. All rights reserved.