ASP.NET core web api DI example (#950)

* Added example source code

* Removed unnecessary nuget package
This commit is contained in:
Manuel Menegazzo
2022-07-14 01:36:56 +02:00
committed by GitHub
parent 6f323d82fd
commit 39e7d98c36
7 changed files with 139 additions and 1 deletions

View File

@@ -0,0 +1,35 @@
using k8s;
using Microsoft.AspNetCore.Mvc;
namespace webApiDependencyInjection.Controllers
{
[ApiController]
[Route("[controller]")]
public class ExampleDependencyInjectionOnConstructorController : ControllerBase
{
private readonly IKubernetes kubernetesClient;
/// <summary>
/// Inject the kubernets class in the constructor.
/// </summary>
/// <param name="kubernetesClient"></param>
public ExampleDependencyInjectionOnConstructorController(IKubernetes kubernetesClient)
{
this.kubernetesClient = kubernetesClient;
}
/// <summary>
/// Example using the kubernetes client obtained from the constructor (this.kubernetesClient).
/// </summary>
/// <returns></returns>
[HttpGet()]
public IEnumerable<string> GetPods()
{
// Read the list of pods contained in default namespace
var podList = this.kubernetesClient.CoreV1.ListNamespacedPod("default");
// Return names of pods
return podList.Items.Select(pod => pod.Metadata.Name);
}
}
}

View File

@@ -0,0 +1,25 @@
using k8s;
using Microsoft.AspNetCore.Mvc;
namespace webApiDependencyInjection.Controllers
{
[ApiController]
[Route("[controller]")]
public class ExampleDependencyInjectionOnMethodController : ControllerBase
{
/// <summary>
/// Example using the kubernetes client injected directly into the method ([FromServices] IKubernetes kubernetesClient).
/// </summary>
/// <param name="kubernetes"></param>
/// <returns></returns>
[HttpGet()]
public IEnumerable<string> GetPods([FromServices] IKubernetes kubernetesClient)
{
// Read the list of pods contained in default namespace
var podList = kubernetesClient.CoreV1.ListNamespacedPod("default");
// Return names of pods
return podList.Items.Select(pod => pod.Metadata.Name);
}
}
}