You Must Believe In Spring

Webエンジニアによる雑記

ASP.NET Coreでappsettings.jsonから配列形式の設定値を取得する

備忘録としてメモ。
ASP.NET CoreのWebアプリケーションでappsettings.jsonから配列形式で設定を取得したいとき。

appsettings.json

{
    "ApiServer": [
        {
            "SiteName": "authServer",
            "BaseUri": "https://xxxx.com",
            "AuthParam": "api-key-xxxx"
        },
        {
            "SiteName": "fileServer",
            "BaseUri": "https://yyyy.com",
            "AuthParam": "api-key-yyyy"
        }
    ]
}

"ApiServer"の設定を取得したいとします。
配列形式に2つの設定があり、各要素は以下のクラスにデシリアライズしたい。

public class ApiServerSetting
    {
        public string SiteName { get; set; }

        public string BaseUri { get; set; }

        public string AuthParam { get; set; }
    }

その場合は以下のように実装します。

ApiServerSetting[] setting = configuration.GetSection("ApiServer").Get<ApiServerSetting[]>();

ポイントはGet<T>のジェネリック配列などコレクション型を指定してあげることです。

イメージとしては、IConfiguration.GetSection(string key)で指定のキーの子要素を取得して、
その後のGet<T>メソッドでT型にマッピング(デシリアライズ)してあげる感じでしょうか。


従来のASP.NETのWeb.configでの運用に比べ、
設定の取得方法も色々と変わったので、少しずつ慣れていこうと思います。

最初の投稿なので現在のスキルの棚卸など

都内某IT企業でWebエンジニアとして働いています。
何回か転職したことがありますが、エンジニアとしての職歴は5年ほどです。

で、最近強く思うのが、

アウトプット大事!」ということです。

人は自分の理解していること以上のアウトプットは出来ないんだ、というのをここ最近学びました。
自分はインプットはわりと多いのですが、わかった気になっている部分が多く、
優秀な人ほどアウトプットを通して、インプットした知識をきちんと自分のものにしていると思っています。

そして、自分はいかんせんアウトプットが苦手なため、
このブログで、まずは小さなことから技術的な記事を投稿していければと思います。

 

現在のスキル

言語やフレームワーク

  • C#, .NET Core, ASP.NET Core
    実務ではサーバーサイドがメインのため。
  • Typescript, Vue.js
    ASP.NET系なら(そうでなくとも?)TypeScript使っているパターン多いと思いますが、
    例にもれず自分のプロジェクトでも使っていました。
    ただサーバーサイドに比べたらもう少し勉強が必要だと思っている。
    Vue.jsも然り。既存ページの改修時に変更したくらいで、フレームワークの原理を理解できていないところが多い。。

インフラなど

  • Micorosoft Azure
    WebApps(App Service)でのPaas運用が中心。
    DBもAzure SQL Databaseを使っています。

 

今後について

C#以外の言語も勉強してみたいと思います。
今はGo言語やPythonなどをかじっています。
少し他の言語を勉強してみると、C#がいかに高水準な言語であり、
また.NETやASP.NETが開発者が欲しい機能がかなり網羅された快適なフレームワークであることがわかるんじゃないかなーと思います。

クラウドではAWSを使ってみたいです。
実務では使うことなさそうなので、プライベートの時間で色々触ってみようと思います。
直近では会社のお金でSolution Architect AssociateとDeveloper Associateを受験するため(震え声)、
まずは資格の勉強からはじめようと思います。

 

インプットとアウトプットの比率が、まずは7:3くらいになるように
(それでもインプットがまだ多め..)
ぼちぼち更新していこうと思います。

 

ちなみにブログのタイトルは、ピアノジャズの巨匠、
Bill Evansのアルバムのからとりました。