Wrapper SubiektGT + SferaGT - PHP REST API
API udostępnia interfejs i zapewnia komunikacje z SubiektGT w następujący sposób:, (*1)
Aplikacje, które muszą zostać wcześniej zainstalowane na komputerze/serwerze z Windows: - SubiektGT oraz SferaGT (testowano na 1.50 HF1) - serwer WWW (testowano na Apache/2.4.27 (Win32)) - php (testowano na wersji 7.1.9) - zainstalowane biblioteki php: com_dotnet, sqlsrv, (*2)
Pobieramy projekt w wersji master/lub stabilnej lub używamy do tego composer-a. Poniższy przykład przedstawia pobranie wersji developerskiej., (*3)
create-project lukeotdr/api-subiekt-gt --stability dev
Paczkę umieszczamy tak aby serwer www miał możliwość uruchomienia plików PHP z katalogu public lub odpowiednio konfigurujemy serwer www. Uruchamiamy konfigurację api poprzez przykładowe poniższe wywołanie:, (*4)
http://192.168.1.1/api-subiekt-gt/public/setup
Powyższe wywołanie uruchomi konfigurator api, który pomoże utworzyć plik konfiguracyjny do połączenia ze Sferą GT oraz SQLServer-em. Należy przygotować użytkownika oraz hasło do SQLServera dzięki któremu zostanie nawiązane połączenie z bazą Subiekta. Jeśli była użyta autentykacja windows trzeba utworzyć użytkownika z dostępem do podmiotu. Do testów można użyć danych admina "sa" lecz na produkcji nie zalecane., (*5)
Po konfiguracji należy jeszcze przeprowadzić test połączenia podając istniejący numer dokumentu sprzedaży z Subiekta. Np: "PA 13659/12/2017". W odpowiedzi i poprawnego połączenia powinniśmy zobaczyć coś podobnego jak poniżej., (*6)
Wysłane rządanie:, (*7)
192.168.1.1/api-subiekt-gt/public/api/document/get { "api_key": "XXXXXXXXXXXXXXXXXXXXXX", "data": { "doc_ref": "PA 13659/12/2017" } }
XXXXXXXXXXXXXXXXXXXXXX - wygenerowane api key., (*8)
Odebrana odpowiedź:, (*9)
{ "state": "success", "data": { "products": [ { "name": "MUND Skarpety PAMIR r.M czarny", "code": "8424752732026", "qty": "1.0000", "price": "34.9200" }, { "name": "ARC'TERYX Woreczek APERTURE CHALK BAG large fiolet", "code": "806955782905", "qty": "1.0000", "price": "62.5700" }, { "name": "ARC'TERYX Plecak CIERZO 18 dk basalt", "code": "806955927375", "qty": "1.0000", "price": "175.5200" }, { "name": "LIFESYSTEMS Gwizdek ratunkowy SAFETY WHISTLE", "code": "5031863022507", "qty": "1.0000", "price": "27.0600" } ], "fiscal_state": 1, "accounting_state": 0, "reference": "", "comments": "", "customer": [], "doc_ref": "PA 13659/12/2017", "doc_type": "PA", "amount": "300.0700", "state": 1, "date_of_delivery": null, "is_exists": true, "gt_id": 171417 } }
Jeśli udało się połączyć z bazą danych to teraz nie pozostaje nic innego jak utworzyć interfejs do komunikacji z api. Rządania do api w powyższym przykładzie wysyłamy na adres:, (*10)
http://192.168.1.1/api-subiekt-gt/public/api/ przykładowe wywołanie: http://192.168.1.1/api-subiekt-gt/public/api/document/get
UWAGA - adres "setup-u" należy zabezpieczyć przed nieautoryzowanym dostępem np przez .htaccess dyrektywy allow deny. Można również przkopiować katalog w inne miejsce., (*11)
Gdyby zaszła potrzeba użyć IIS-a jako serwera www to rządania bez modułu "rewrite" miałyby postać:, (*12)
http://192.168.1.1/api-subiekt-gt/public/api?c=document/get
Dokumentacja metod API: Dokumentacja, (*13)
The MIT License (MIT). Please see License File for more information., (*14)