Skip to content

Latest commit

 

History

History
134 lines (116 loc) · 5.33 KB

README.md

File metadata and controls

134 lines (116 loc) · 5.33 KB

Serwer stworzony w ASP.NET CORE Web API .NET 8.0 i klient w python 3.11


Zawartość REDME

  1. ✈️ Funkcjonalność
  2. 💻 Działanie serwera
  3. 🔧 Konfiguracja serwera
  4. 🐉 Konfiguracja klienta w pythonie
  5. 🔒 Konfiguracja certifikatu SSL dla klienta
  6. 📡 Modyfikowanie bazy danych
  7. :godmode: Przykład

Funkcjonalność

System rezerwacji biletów lotniczych

  1. Baza lotów (Miasto od , Miasto do, dzień, godzina)
  2. Wyszukiwanie lotów
  3. Kupno biletu
  4. Odbiór potwierdzenia kupna w formacie PDF
  5. Sprawdzenie rezerwacji na podstawie podanego numeru

Działanie Serwera

Można sprawdzić działanie serwera w:

SWAGGER:

Klient pythonowy znajduje się w folderze pythonClient:

W postmanie importując dane z:

Instrukcja konfiguracji serwera

Stworzenie pustej bazy danych

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"

Utworzenie tabel z Entities

Otwieramy Package Manage Console
View -> Other Windows -> Package Manage Console
W Package Manage Console w Default project: wybieramy DB

Dodanie nowej migracji *opcjonalne*

add-migration InitialCreateDatabase

Wdrożenie migracji i zaktualizowanie bazy danych *wymagane*

update-database

Instrukcja konfiguracji klienta

Przechodzimy w konsoli do folderu pythonClient

Tworzymy wirtualne środowisko

python -m venv venv

Aktywujemy wirtualne środowisko

.\venv\Scripts\activate

Instalujemy wszystkie potrzebne biblioteki z pliku requirements.txt

pip install -r .\requirements.txt

Instrukcja konfiguracji certifikatu SSL dla klienta w pythonie

Wymaga Windows Powershell i OpenSSL

Utworzenie certifikatu ssl dla klienta w pythonie

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 -nodes

Po wpisaniu polecenia należy podać wcześniej wybrane hasło w tym przykładzie było to twojeDowolneHaslo

Użycie skryptu pythonowego do modyfikowania bazy danych

Skrypt pythonowy znajduje się w pliku createFlights.py w folderze pythonClient

Przykład

Przykład w postmanie użycia servisu ReserveFlight:

ReserveFlight body Postman example ReserveFlight body

ReserveFlight authentication Postman example ReserveFlight authentication

ReserveFlight response body Postman example ReserveFlight response body

ReserveFlight response headers Postman example ReserveFlight response headers