Panel klienta lvlup.pro - API v4

API v4

Po kilku latach czekania nareszcie mam przyjemność utworzyć wątek odnośnie API v4 :slight_smile:
Tu znajdziecie najważniejsze informacje odnośnie API naszego panelu klienta w jednym miejscu.
Zachęcam też do zadawania pytań odnośnie użycia czy propozycji co warto dodać lub zmienić.

Dokumentacja

Zawsze aktualną dokumentację znajdziecie pod tymi linkami:

Dokumentacja w najnowszej wersji jest zawsze budowana automatycznie z komentarzy w kodzie.
Dzieje się tak przy kompilacji kodu przed każdym wrzuceniem panelu klienta na serwer.
Od naszej strony ciężko się też pomylić gdyż serwer ma kod typowany a struktura odpowiedzi jest używana też do dokumentacji.
Macie więc pewność że dokumentacja jest zgodna z serwerem w prawie 100%

Piaskownica

Zanim użyjecie API produkcyjnego możecie testować do woli zarówno frontend jak i backend panelu klienta:

Jedna z metod API utworzy wam konto oraz zwróci wynik z loginem, hasłem oraz kluczem API.
Szczegóły w dokumentacji.

Gotowe, oficjalne biblioteki

Nie wymyślaj koła od nowa. Użyj gotowych i sprawdzonych rozwiązań. :white_check_mark:
Wystarczy zainstalować gotową bibliotekę i używać :partying_face:
Potrzebujesz integracji z wpłatami do portfela? To najszybszy i najprostszy wybór :moneybag: :rocket:

Java 1.8+

Projekt utrzymywany przez @kacper, udostępniony na licencji MIT.

Biblioteki społeczności

Nie są to biblioteki autorstwa LVL UP jednak zawsze chętnie zapewnimy wsparcie oraz umieścimy w tym spisie jeśli jakość projektu jest odpowiednia.

Jeśli tworzysz lub chcesz stworzyć bibliotekę a coś nie jest jasne to możecie śmiało pytać w tym temacie lub napisać do nas zgłoszenie w panelu klienta: https://lvlup.pro/panel/support/ticket

Możemy też pomóc w projekcie open source poprzez pull requesty jeśli będzie okazja.

Aktualnie szukamy ochotników na utworzenie projektu open source w językach:

  • Javascript (node)
  • Go

Kolejność: od najbardziej potrzebnej do najmniej.
W przypadku prowadzenia biblioteki możemy się dogadać odnośnie rabatu w lvlup.pro :merchant: :money_with_wings:

PHP

1

Pełna obsługa API. Projekt @Jebanany, licencja MIT

2

Tylko płatności.
Projekt utrzymywany przez @krzukosz, udostępniony na licencji MIT.

Python 3.x

Pełne wsparcie API. Projekt @kazi na licencji MIT.

10lajków

Zacząłem dzisiaj pisać bibliotekę w pythonie, za jakiś czas może podlinkuje repozytorium. Dlaczego kwota płatności w /v4/wallet/up musi być stringiem (w ")?

3lajki

Sprawdzaliście to https://swagger.io/tools/swagger-codegen/ ?

To wydaje się być najłatwiejszym sposobem dla obu stron.
Głównie ze względu na niedoskonałość float.
Alternatywnie możemy przyjmować ilość groszy w int ale nie wiem czy chcę to tłumaczyć, obecny format jest dużo prostszy.

Próbowałem tego https://github.com/OpenAPITools/openapi-generator ale żadna statyczna wersja dokumentacji nie była zbyt czytelna. Generowane biblioteki zaś pozostawiały naprawdę dużo do życzenia.

Spróbuje tego o czym wspomniałeś i dam znać.

Chcesz wywołać wojnę? Ze wszystkich typów zmiennych to właśnie float jest najbardziej niedoskonałym z typów. Na tym zakończmy bo naprawdę będzie tu wojna bo zaraz zlecą się devovie wszelkiej maści którzy uwielbiają float-a

A co gdyby zostawić to w formie zapisu floata, ale na etapie parsowania argumentu, na etapie przetwarzania stringa, usuwać mu kropkę i parsować jako inta, dzięki temu posiadając dalej ładnie przeliczone grosze i czytelną forme dla użytkownika :thinking:

Wybacz ale czytałem to 3 razy i nie rozumiem :face_with_thermometer:
Jest też spora szansa że przeciętny użytkownik API też może tego nie zrozumieć

Przyjąć float i przed dokonaniem jakiejkolwiek operacji konwertować go na inta z licza groszy, po drodze usuwając kropkę. Chyba, o to mu chodziło.

1lajk

“10.00” (usuwamy kropkę) -> “1000” gr, ok, 10zł
“10.0001” -> “100001” gr, ??, 1000zł i 1 gr

Niezbyt to wygląda dobrze. :joy:

Można ucinać, ale to takie meh.

No trochę meh, ale też nie da się doładować mniej niż 1 grosz. Ew. kompromisem mogły by być dokładniejsze komunikaty błędów przy zapytaniu, bo musiałem się nieźle zastanowić co jest nie tak w zapytaniu, aż znalazłem, że to musi być string.

Jest szansa że pojawi się opcja tworzenia VPS’a?

Tak, będzie to ustalane podczas implementacji formularza zamówień w panelu v4.

6lajków

Mamy już wstępną wersję piaskownicy gdzie można testować API do woli

3lajki

Następną funkcją którą się zajmiemy to webhooki.

Element infrastruktury którego potrzebowaliśmy do tego jest już gotowy.
Jeśli ktoś jest ciekaw szczegółów, tu jest dokładny opis:

Planowałem aby dziś powstały webhooki jednak cały nawał ticketów to uniemożliwił.
Postaram się jednak aby zostały dodane jeszcze w tym tygodniu a najlepiej w ten czwartek/piątek.

5lajków

Mamy już działające webhooki dokonanych płatności na piaskownicy i produkcji

W następnym tygodniu powinny działać wielokrotne próby dostarczenia wiadomości, póki co informację wysyłamy tylko raz.

4lajki