JSON Web Token i Samuraje z ASP.NET CORE, Swagger UI i Blazor

Cezary Walenciuk

JSON Web Token i Samuraje z
ASP.NET CORE, Swagger UI i Blazor

@walenciukC

Speaker
Dlaczego potrzebujemy Json Web Tokenów
🤫
Problem bezstanowego protokołu HTTP
😳
blog
Copyright © 2021 Cezary Walenciuk
blog
Copyright © 2021 Cezary Walenciuk
blog
Copyright © 2021 Cezary Walenciuk
Problem skalowania w chmurze
😩

Mamy dwa typy skalowania

blog
Copyright © 2021 Cezary Walenciuk
Lepsze rozwiązanie to JWT
🤠

JSON Web Token składa się :

Zobaczmy nasze API Samuraju
...ale najpierw Clean Architecture
Samuraju to ty znasz ?
blog
Copyright © 2021 Onion Cezary Walenciuk
blog
Copyright © 2021 Onion Cezary Walenciuk
blog
Copyright © 2021 Onion Cezary Walenciuk
Dlaczego REST API ?
Samuraju
blog
Copyright © 2021 Cezary Walenciuk
Jak testować REST API
Samuraju
blog
Copyright © 2021 Cezary Walenciuk
Dodajmy Swagger UI 😎
Co tam panie w aplikacji Blazor ?
Samuraju
Blazor pozwala stworzyć Tobie aplikację SPA w C#.
WebAssembly

Zalety :

Wady :

blog
Copyright © 2021 Cezary Walenciuk

Problemy :

Nie mam ochoty pisać kodu HTTPClinet do mojego API w ASP.NET Core

Na pomoc przychodzi NSwag

NSwag

Generator kodu dla API

NSwag

Generator kodu dla API

Bazuje on na specyfikacji OpenAPI

NSwag

Generator kodu dla API

Bazuje on na specyfikacji OpenAPI

Działa dla TypeScript
i .NET CORE

blog
Copyright © 2021 Cezary Walenciuk
blog
Copyright © 2021 Cezary Walenciuk
blog
Copyright © 2021 Cezary Walenciuk
blog
Copyright © 2021 Cezary Walenciuk
Wygenerowaną klasę warto przerobić

👿

Edycja wygenerowanej klasy

                    
                        public partial interface IClient
                        {
                            System.Net.Http.HttpClient HttpClient { get; }

                            ......
                    
                

Edycja wygenerowanej klasy PRZED

                    
                        public partial class Client : IClient
                        {
                            private string _baseUrl = "";
                            private System.Net.Http.HttpClient _httpClient;
                            private System.Lazy<Newtonsoft.Json.JsonSerializerSettings> _settings;
                            
                            public Client(string baseUrl, System.Net.Http.HttpClient httpClient)
                            {
                                BaseUrl = baseUrl; 
                                _httpClient = httpClient; 
                                _settings = new System.Lazy<Newtonsoft.Json.JsonSerializerSettings>(CreateSerializerSettings);
                            }
                    
                

Edycja wygenerowanej klasy PO

                    
                        public partial class Client : IClient
                        {
                            private string _baseUrl = "";
                            private System.Net.Http.HttpClient _httpClient;
                            private System.Lazy<Newtonsoft.Json.JsonSerializerSettings> _settings;
                            
                            public Client(System.Net.Http.HttpClient httpClient)
                            {
                            
                                _httpClient = httpClient;
                                _settings = new System.Lazy<Newtonsoft.Json.JsonSerializerSettings>(CreateSerializerSettings);
                            }
                    
                

Jak tworzymy Tokeny ?
Samuraju
Swagger UI i Tokeny ?
Samuraju
Blazor i Tokeny ?
Samuraju
Koniec ?
Samuraju