我们能否将发布到Azure Web App中的.net核心API导入APIM

时间:2019-02-27 11:37:15

标签: azure api azure-api-management

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

谢谢 萨卡迪普

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

第1步-添加SWAGGER(OPEN API接口) 第一步是添加swagger,这是一个开放的API接口,可以将其导入API管理中。为了首先添加大手笔,我们必须在现有应用程序中安装一个N uGet软件包

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

配置服务:

public void ConfigureServices(IServiceCollection服务)
    {
    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服务中发布这些更改

  1. 右键单击项目,然后选择“发布”以将新更改添加到App服务。

  2. 选择并存在或创建新的App服务(如果不存在任何App Service)

  3. 将其发布到App Service。

  4. 一旦发布,请确保http:// {YourAppServiceName} .azurewebsites.net / swagger加载API接口页面

  5. 导航至https:// {YourAppServiceName} .azurewebsites.net / swagger / v1 / swagger.json

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

  1. 导航到Azure中的API管理资源
  2. 从左侧窗格的API中选择
  3. 点击OpenAPI
  4. 系统将为您提供一个表格,您可以下载该表格 json文件到本地计算机,然后使用swagger进行验证 编辑器工具,如果在导入该文件时可能遇到任何问题 在上传之前,您对要修复的项目提出了建议。
  5. 以以下形式添加Swagger.json端点或文件,然后单击“创建”。
  6. 将您的API端点添加到API管理中,然后从 功能区,然后在网络服务网址字段中添加您的应用服务网址 如下图所示。
  7. 在“ API管理”中通过单击“测试”来测试您的API 功能区并选择一种API来将示例请求发送给 按照下面的图片。