Serwer stworzony w ASP.NET CORE Web API .NET 8.0 i klient w python 3.11
✈️ Funkcjonalność- 💻 Działanie serwera
- 🔧 Konfiguracja serwera
- 🐉 Konfiguracja klienta w pythonie
- 🔒 Konfiguracja certifikatu SSL dla klienta
- 📡 Modyfikowanie bazy danych
Przykład
System rezerwacji biletów lotniczych
- Baza lotów (Miasto od , Miasto do, dzień, godzina)
- Wyszukiwanie lotów
- Kupno biletu
- Odbiór potwierdzenia kupna w formacie PDF
- Sprawdzenie rezerwacji na podstawie podanego numeru
Można sprawdzić działanie serwera w:
SWAGGER:
Klient pythonowy znajduje się w folderze pythonClient:
W postmanie importując dane z:
Tworzymy bazę danych za pomocą
SQL Server Object Explorer.View -> SQL Server Object Explorer -> SQL Server -> Database -> Add new Database
Po stworzeniu bazy danych, odświeżamy ją klikając na nią prawym przyciskiem i Refresh.
Nastepnie klikamy na nią prawym przyciskiem, wybieramy Properties
z Properties kopiujemy wartość Connection string, które umieszczmy w
appsettings.json w "DefaultConnectionString"Otwieramy
Package Manage ConsoleView -> Other Windows -> Package Manage Console
W Package Manage Console w
Default project: wybieramy DBDodanie nowej migracji *opcjonalne*
add-migration InitialCreateDatabaseWdrożenie migracji i zaktualizowanie bazy danych *wymagane*
update-databasePrzechodzimy w konsoli do folderu pythonClient
Tworzymy wirtualne środowisko
python -m venv venvAktywujemy wirtualne środowisko
.\venv\Scripts\activateInstalujemy wszystkie potrzebne biblioteki z pliku requirements.txt
pip install -r .\requirements.txtWymaga Windows Powershell i OpenSSL
Otwieramy Windows PowerShell jako administrator
Sprawdzamy klucz certifikatu z visual studio i zapisujemy certifakt do zmiennej:
# Krok 1: Pobierz thumbprint certyfikatu
$certInfo = dotnet dev-certs https --check
$certId = $certInfo | Select-String -Pattern "A valid certificate was found: ([A-F0-9]{40})" | ForEach-Object { $_.Matches[0].Groups[1].Value }
# Write-Output $certId powienien wyświetlić w konsoli 40-znakowy ciąg liter i cyfr będący thumbprintem certifikatu
Write-Output $certId
# Krok 2: Użyj zmiennej $certId, aby znaleźć certyfikat w magazynie certyfikatów
$cert = Get-ChildItem -Path Cert:\CurrentUser\My | Where-Object {$_.Thumbprint -eq $certId}
# Opcjonalnie: Wyświetl informacje o znalezionym certyfikacie
if ($cert) {
Write-Output "Certyfikat znaleziony:"
Write-Output $cert
} else {
Write-Output "Certyfikat z thumbprintem $certId nie został znaleziony."
}Podajemy folder gdzie ma wyeksportować klucz i dowolne haslo :
$path = "D:\pathToProject\pythonClient"
Export-PfxCertificate -Cert $cert -FilePath "$path\localhost.pfx" -Password (ConvertTo-SecureString -String twojeDowolneHaslo -Force -AsPlainText)Otwieramy openssl np. w C:\Program Files\Git\usr\bin\openssl.exe
pkcs12 -in D:\pathToProject\pythonClient\localhost.pfx -out D:\pathToProject\pythonClient\certificate.pem -nodesPo wpisaniu polecenia należy podać wcześniej wybrane hasło w tym przykładzie było to twojeDowolneHaslo
Skrypt pythonowy znajduje się w pliku createFlights.py w folderze pythonClient
Przykład w postmanie użycia servisu ReserveFlight:



