meds-processor ? Leitfaden zu C# und .NET CoreDies ist der perfekte Ort, um C# und .NET Core zu lernen, indem Sie etwas Reales mit Aussehen und Gefühl erstellen - einen Drogenlisten -Datenschaber und eine sichere dokumentierte REST -Web -API. Dieses Projekt richtet sich an Entwickler mit moderatem Programmiererlebnis und einige Erfahrungen beim Erstellen von Web -Apps, aber C# und .NET im Backend noch nicht.
ValidFrom.Year < 2019 , Parallelisierung des Parsers aufgrund von Dateisperrsituationen entfernt und die API-Antworten ein wenig aufgeräumt und unnötiger Code entfernt.ValidFrom.Year < 2019 herauszufiltern. Ich werde dies mit dem zusätzlichen Parser (oder anderen Fix) beheben und die Blog -Beiträge aktualisieren! Die plattformübergreifende Produktionsbereitschaft ist .NET CORE und die Version, mit der diese Anwendung erstellt wird, ist "version": "2.2.402" . Hier finden Sie die SDK -Downloads für Ihr Betriebssystem.
Erstellen Sie die Anwendung (und sicherstellen Sie, dass die Internetkonnektivität für Nuget -Pakete wiederhergestellt werden) mit:
> cd src/MedsProcessor.WebAPI
MedsProcessor.WebAPI > dotnet buildFühren Sie die Anwendung aus (und stellen Sie sicher, dass Internet -Konnektivität für Web -Schaber funktioniert) unter https: // localhost: 5001 mit:
> cd src/MedsProcessor.WebAPI
MedsProcessor.WebAPI > dotnet runSie können jetzt die Web -API über eine Swagger -Benutzeroberfläche unter der Adresse durchsuchen : https: // localhost: 5001/swagger/index.html
Das Bild unten ist ein Screenshot der Swagger -Benutzeroberfläche, das zur Dokumentation der Web -API mit verfügbaren Endpunkten und ihren angesehenen HTTP -Methoden hergestellt wird.
Ich war irritiert von der Tatsache, dass die medizinischen Daten und Drogen des Landes in einem so unstrukturierten und unfreundlichen Nutzer -unfreundlichen Format wichtige Daten wie Medizin und Drogen. Außerdem dachte ich mir, ich bin ein bisschen verrostet mit .NET -Kern und schreibe technische Blogs.
Erfahren Sie, um einen Web -Schaber, einen Downloader und einen Excel -Parser zu erstellen, indem Sie einige versteckte Tabellenkalkulationsdaten des Krata -Krankenversicherungsfonds und seiner primären und ergänzenden Arzneimittelliste und all dies nur durch C# und .NET CORE (auf jeder modernen Computer -OS -Plattform) durchgraben! Das .NET -Core -SDK kann unter Windows, OSX oder Linux gleich installiert und verwendet werden.
Das Repository besteht aus vier Teilen. Diese Teile sind Git -Zweige, in denen jeder von ihnen einen eigenen Blog -Beitrag hat. Sie können hier auf GitHub (der Dropdown -Down -Abzweigauswahl) Zweige durchsuchen. Ich empfehle, dass Sie mit dem Blog -Teil/1 beginnen, da Sie die Lösung selbst erstellen. Sie können jeden modernen Betriebssystem- und Code -Editor verwenden.
Teil/1 (Praktischer .net Core - Schreiben Sie einen Web -Schaber, einen Downloader & Excel -Parser. Teil 1: Schaber)
AngleSharp -Bibliothek erstellen, um einige Remote -HTML -Seiten zu holen und einige Links zu extrahieren.Teil/2 (Praktischer .NET Core - Schreiben Sie einen Schaber, Fetcher & XLS (x) Parser. Teil 2: Downloader)
Task Parallel Library nutzt und asynchronen Aufgaben in .NET Core verarbeitet.Teil/3 (Praktischer .NET -Kern - Schreiben Sie einen Schaber, Fetcher & .xls (x) Parser. Teil 3: Parser)
NPOI -Tabellenkalkulationsbibliothek zu verwenden, um relevante Daten für Ihre C# -Modellklassen zu extrahieren. Nach Abschluss haben Sie einen einzelnen Datensatz mit transformierten und organisierten Daten.Teil/4 (Praktischer .NET Core - Schreiben Sie einen Schaber, Fetcher & .xls (x) Parser. Teil 4: Secure REST -Web -API)
Swagger -Dokumenten, die auf Ihren gut dokumentierten Controllern und Aktionen basieren. Die Quelle hat sich durch die Teile stark verändert. Es könnte Fehler geben, da dieses Projekt nicht durch Tests abgedeckt ist (etwas, das ich in Zukunft in Betracht ziehen könnte). Teil/4 Neben der Web -API -Implementierung wird einige Teile refactoring und verbessert, die aus früheren Teilen nicht in ihrer besten Form sind. Sie werden zunächst bemerken, dass sich dieses Dokument für das Readme.md nicht in dieser endgültigen Form in den ersten drei Zweigen befindet. Lassen Sie sich nicht entmutigen und benachrichtigen Sie mich eher, wenn Sie einen Verbesserungsort sehen. Alles sollte wie erwartet funktionieren, wenn Sie der Blog -Serie folgen. Außerdem sind alle Praktiken, die Sie hier sehen, wie eine Basisklasse für eine HTTP -Antwort, um HTTP -Header -Daten zu tragen, nicht die beste Produktion, die Sie verwenden können. Also ja, bleib immer neugierig, frag dich selbst "Warum?", Überdenken Sie Ihren Ansatz und führen Sie dann aus.
Ich bin offen für Verbesserungen, Kommentare, Probleme, Gabeln/PRs und alles von gutem Anliegen und Idee. Wir können auch Ihre Ideen und Themen im Kommentarbereich in den Blog -Postartikeln besprechen, wenn Sie dies bevorzugen.
Vedran Mandić.
MIT -Lizenz