Web Service

0

Ma za zadanie zrobić możliwość odpytywania bazy danych o kilka informacji poprzez web service, który będzie wystawiony na zewnątrz. Mam specyfikację WSDL systemu, który będzie odpytywał, ale nie mam pojęcia co z tą specyfikacją zrobić. Sprawdzam tylko czy ilości znaków w konkretnych polach.

Na teraz zrobiłem web service i postawiłem go na IIS na Windows Server 2012 i 2016 i odpytywanie lokalnie w sieci działa. Zwraca wynik, ale jest to string wyglądający jak XML.
Po prostu ładuję całe zapytanie XML jak parametr, biorę z niego to czego potrzebuję, odpytuję bazę i zwracam stworzonego stringa wyglądającego jak xml.

Pytanie czy to jest poprawne rozwiązanie? Nigdy wcześniej nie robiłem web service i teraz tak kombinuję nad rozwiązaniem.

0

Z WSDL-a się generuje kod w C#, Javie *) który się wykonuje zdalnie, inaczej mówiąc to jest type-safe implementacja protokołu.. Nie jest to moze stwierdzenie modne, ale działa to dobrze, nawet skomplikowane interfejsy biznesowe dobrze chodzą, typy złożone, wiele "kropek", skomplikowane metody.
Jest menu w Visual Studio, jak sobie przypomnę to Ci podam. Generowałem C# z WSDL Allegro.

Ręczne iksemelowanie odradzam.

*) nie wiem dla kogo co jest zaskakujące, dla mnie było, że również do języków binarnych bez refleksji (Delphi, C++, z unikodem czy bez).

0

Ogólnie to poniżej przykładowe zapytanie do web service:

<?xml version="1.0" encoding="UTF-8"?> 
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://www.jakasstrona.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <SOAP-ENV:Body> 
<ns1:pytanie xsi:type="ns1:pytanieTyp"> 
<dokument> 
<wersja>2.0.0</wersja> 
<znacznik>jakistekst</znacznik> 
</dokument> 
<konto> 
<login>login</login> 
<haslo>haslo</haslo> 
</konto> 
<towary> 
<towar cos="abc123"/> 
</towary> 
</ns1:pytanie> 
</SOAP-ENV:Body> 
</SOAP-ENV:Envelope> 

A taką przykładowa odpowiedź, którą powinien web service zwrócić:

<?xml version="1.0" encoding="utf-8"?> 
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
<soap:Body> 
<odpowiedz wersja="2.0.0" znacznik="jakistekst" xmlns="http://www.jakasstrona.com"> 
<towary xmlns=""> 
<towar cos="abc123" info1="2" info2="2"> 
<stan miejsce="1" info3="1"/> 
<stan miejsce="5" info3="3"/> 
<stan miejsce="1" info3="9"/> 
</towar> 
</towary> 
</odpowiedz> 
</soap:Body> 
</soap:Envelope>

Mam do tego WSDL, ale nie wiem jak go można użyć do postawienia web service. Co próbuję coś zrobić to rezultat jest taki, że można wyskoczyć przez okno albo walić głową w ścianę.
Jak można użyć WSDL w web service? Oczywiście poza wygenerowaniem klasy z WSDL albo podpięcia go pod projekt, bo tyle to mam zrobione, ale jak z niego skorzystać dalej to nie mam pojęcia

1 użytkowników online, w tym zalogowanych: 0, gości: 1