Skip to content

Airport, web rest api, C# server, python client with tkinter GUI

Notifications You must be signed in to change notification settings

rzymski/RestProject

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


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

About

Airport, web rest api, C# server, python client with tkinter GUI

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published