Scala sttp4 jsoniter wip#1
Merged
lbialy merged 10 commits intoscala-sttp4-jsoniterfrom Mar 18, 2025
Merged
Conversation
… required files params
…rations, fix file response. change serialization from Map to Seq to avoid deleting duplicate keys
…kie serialization support
Owner
|
ciekawe z tym jsoniterem, on ma wsparcie dla rekursywnych typów, trzeba je walczyć w konfiguracji tylko |
Owner
|
cholera, najlepsze libki zblokowane |
Collaborator
Author
|
Kubeapi i github po ręcznych zmianach się kompilują ale github może coś nie działać, bo tam jest używany polimorfizm a na razie jest to explicit wyłączone |
lbialy
approved these changes
Mar 18, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
To nie jest niestety skończone, ale myśle że udało się rozwiązać na pewno kilka problemów a też nie wszystko ten codegen musi implementować.
Co zostało zrobione:
Co zostało do zrobienia:
Blockery
formatIdentifier tak formatuję że często pojawiają się takie same case'y w enumach- tutaj jest to rozwiązane, formatIdentifier nadal psuję w niektórych przypadkach nazwy pól w modelachserializacja enumów w query oraz forms ( trzeba zobaczyć jak to gra z ewentualnymi codecami jsonitera)na enumach jest wykorzystywany codec jsnoniteraReszta:
Myśle że można z niewielkim wysiłkiem dodać wsparcie dla cookiesDoneMogę dość prosto dodać możliwość serializacji parametrów za pomocą FromSerializable za pomocą typeclassy - jeśli taka typeclassa będzie w scope to nadpisze domyślną próbe serializacji - to by pozwoliło ogarnąć te wszystkie dziwne przypadki ze stripeDodałem typeclassy dla serializacji tych parametrów. Wystarczy że będzie w scopie danego endpointaOgólnie wydaję mi się że stripe wymaga na pewno spojrzenia co tam jest dokładnie. Np. są tam chyba rekursywne typy, przez co jsoniter nigdy nie jest w stanie stworzyć codeców - kręci się aż skończy się pamięć.
Stan na 05706ee kompiluję bez problemu:
W kubeapi jest dziwny problem gdzie jeden parametr trafia jako form param do danych szablony zamiast pathParam - tu chyba nic nie da się zrobić, jakiś błąd w codegen.
Github nie kompiluję się ze względu na dwa brakujące enumy oraz błąd w nazwach pól w modelu (dokładnie są takie pola jak "+1" oraz "-1").
W Stripe wydaję się że głównie błąd w codecach - rekursywne typy w jsoniter oraz brak serializacji przypadków niezgodnych ze standardem.