Mockservice

Mockservice.io – narzędzie ułatwiające pracę z chatbotami

Czy chcieliście kiedykolwiek skorzystać z pluginu JSON API w Chatfuel lub External Request w ManyChat, ale nie wiedzieliście jak szybko postawić zewnętrzne API? A może wiedzieliście jak je postawić, ale chcieliście się skupić na logice chatbota, a nie na infrastrukturze związanej z dodatkowym API? Dziś Wam przedstawię narzędzie, które pomoże Wam zasymulować zewnętrzne API i tym sposobem rozszerzyć Waszego chatbota o dynamiczne elementy.

Mockservice.io

Mockservice.io to narzędzie, które umożliwia mockowanie API bez potrzeby stawiania dodatkowego serwera. Co to  oznacza? Pozwala to zdefiniować szereg reguł, które określają jaką odpowiedź ma dać Serwer na wybrany Request. Jakie możliwości daje nam Mockservice?

  • Nieograniczona liczba endpointów (reguł)
  • Intuicyjny UI (nie wymagana jest znajomość programowania w celu zdefiniowania endpointów)
  • Możliwość pracy nad projektem w kilka osób, w zależności od nadanych uprawnień
  • SSL (do endpointów można dostać się za pomocą protokołu https, często wymaganego przez narzędzia powiązane z tworzeniem chatbotów)
  • Możliwość opóźnienia odpowiedzi z serwera (dzięki temu możemy sprawdzić jak nasz chatbot zareaguje w przypadku dużego ruchu i spowolnienia serwera)
  • Opcja dynamicznie tworzonej odpowiedzi (za pomocą JavaScriptu możemy dynamicznie zbudować odpowiedź, bazując na danych z Requestu)
  • Logowanie wywołań (możemy kontrolować jak często był wywoływany dany endpoint)

A jakie funkcjonalności planowane są na najbliższy czas? Przede wszystkim planowane jest stworzenie tzw. Galerii Endpointów, czyli zbioru endpointów wielu publicznych API, które będzie można zaimportować do naszego projektu. Co to oznacza w praktyce? Jeśli będziecie chcieli zasymulować uderzenie do API Facebook’a wystarczy wyszukać odpowiedni szablon, zaimportować go i dostosować zawartość request’ów/response’ów do naszych potrzeb. A co jeśli będziecie chcieli stworzyć API zwracające obrazek/tekst/galerię w formacie Chatfuel lub ManyChat? Już nie będziecie musieli się przekopywać przez dokumentację – wystarczy, że dodacie odpowiedni szablon do projektu i wypełnicie odpowiednio zaimportowany JSON. Brzmi prosto? Takie ma być w zamyśle.

Tyle na temat możliwości, ale co to narzędzie nam właściwie daje? Pokażę Wam teraz prosty przykład, a wykorzystanie Mockservice.io przy budowie chatbotów pokazane będzie w kolejnych sekcjach.

To co możemy łatwo i szybko zrobić to stworzenie prostego endpoint’a, który zwraca nam JSON’a zawierającego dane np. użytkowników. W tym celu loguję się w do panelu. i zakładam nowy projekt:

Mockservice

A następnie dodaję endpoint’a – definiuje mu ścieżkę pod jaką będzie dostępny i przykładową odpowiedź jaką powinien zwrócić:

Mockservice

W efekcie po załadowaniu zdefiniowanego endpoint’a otrzymamy JSON’a z wybranymi użytkownikami:

Mockservice

JSON API

Tyle odnośnie wprowadzenia, ale jak możemy wykorzystać Mockservice.io podczas budowania chatbotów? Często zdarza się, że chatbot wymaga interakcji z zewnętrznym API, aby zapisać/pobrać/zaktualizować dane, ale API nie jest jeszcze stworzone. W tym momencie z pomocą może przyjść nam Mockservice.io, który pozwala nam stworzyć tzw. mock-up API – czyli zasymulować działanie prawdziwego serwera. Aby wykorzystać dobrodziejstwa interkacji z zewnętrznym API możemy wykorzystać plugin JSON API w Chatfuel, czy External Request w ManyChat. 

Teraz pokażę Wam skorzystanie z zewnętrznego serwera na podstawie Chatfuel i pluginu JSON API. Plugin ten umożliwia wysłanie danych do zewnętrznego serwera, a odpowiednio skonstruowana odpowiedź zwrotna może spowodować:

  • wyświetlenie obrazka
  • wyświetlenie video
  • wysłanie pliku
  • wyświetlenie galerii
  • wyświetlenie przycisków
  • ustawienie atrybutów
  • wyświetlenie szybkich odpowiedzi

Jak powinien wyglądać JSON wysłany z serwera, aby Chatfuel prawidłowo go zinterpretował znajdziecie w dokumentacji: TUTAJ. Jednym z możliwych scenariuszy jaki może się zdarzyć jest sytuacja gdy użytkownik składa zamówienie za pomocą chatbot’a, a na sam koniec wszystkie zebrane dane musimy wysłać do serwera, zapisać i odesłać informację użytkownikowi o powodzeniu operacji. Jeśli mamy już stworzone API, które to robi wtedy możemy je wykorzystać, ale gdy nie jest ono jeszcze zaimplementowane pozostają nam dwa wyjścia – zablokować dalsze tworzenie chatbot’a do czasu, aż takie API powstanie lub stworzyć mock-up takiego API za pomocą Mockservice.io.

Załóżmy, że etap składania zamówienia polegał na sekwencji pytań i zbieraniu odpowiedzi na temat zamawianej potrawy oraz zapisywaniu odpowiedzi do atrybutów:

  • nazwa_pizzy: Prosciutto
  • ilosc: 1
  • dodatki: sos czosnkowy
  • napoj: brak

Następnie te atrybuty wraz z odpowiedziami chcemy wysłać do serwera, aby zapisać zamówienie. Ponieważ nie mamy jeszcze API, będę chciał to zasymulować za pomocą Mockservice.io. W tym celu tworzę nowy projekt (nazywam go odpowiednio) oraz dodaję endpoint, który będzie symulował mój serwer (nazwałem go Saving order). Jako typ request’a wybieram POST, a path wybieram: /order/save.

Mockservice

Tak przygotowany endpoint póki co nic jeszcze nie zwraca, ale mogę już go dodać do Chatfuel zanim zacznę pracować nad odpowiedzią. W tym celu kopiuję link do nowostworzonego endpoint’a i przechodzę do Chatfuel. Tam na końcu zamówienia dodaję plugin JSON API i w miejscu Url’a wklejam wcześniej skopiowany link, ustawiając typ request’a na POST, a w miejscu body wysyłam wypełnione atrybuty.

Mockservice

Teraz wystarczy stworzyć odpowiednią odpowiedź po stronie Mockservice.io. Zakładając, że chatbot ma tylko podziękować za złożenie zamówienia wypełniam Body tak, aby użytkownik otrzymał odpowiednią wiadomość, zaznaczając przy tym typ odpowiedzi jako Json:

Mockservice

W rezultacie po złożeniu zamówienia powinniśmy otrzymać podziękowania od chatbota. Czy tak się stanie? Przetestujmy:

Mockservice

 



Udostępnij: