• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    NYXnyx :: API
    Nove API:
    Postup ziskani tokenu

    Postupně vznikající popis API ve Swaggeru (už by tam měl být nějaký základ):
    https://app.swaggerhub.com/apis/nyx.cz/nyx.cz/0.0.1 
    rozbalit záhlaví
    LUCIEN
    LUCIEN --- ---
    NYX: Za mě vyjdi z Fyxu :)
    NYX
    NYX --- ---
    Tak pridano volani na obsah posty...tohle bylo na pet minut narozdil od diskuze (kde jeste nejsou 100% pokryte vsechny typy prispevku apod).

    Nejaka preference ktera volani v jakem poradi tam pridat? Nebo mam vyjit z toho, co pouziva ted Fyx?
    NYX
    NYX --- ---
    Tak je snad ve swaggeru (viz zahlavi) castecne popsane volani na vypis diskuze...jako je to docela fuska, ale casem se to snad zlepsi, az se budou recyklovat ty same reference stale dokola :)
    NYX
    NYX --- ---
    GIOMIKY: No ale ze to nepobere treba id/username na ruznych urovnich, za to nemuzu :-/
    NYX
    NYX --- ---
    GIOMIKY: Za par mesicu tipuji :-) Bugu je dost, musim doupravit svoji appku a v praci taky nemam ted zrovna flakarnu...

    Ve sve appce jsem predelal vsechny zakladni veci a nebylo to nijak hrozne, ale cekaji me ted zmeny, ktere vyzaduji nove gui prvky a zmenu celeho procesu (upload souboru separatnimi volanimi), tak si budu muset vzpomenout, jak to objc funguje vlastne :-)

    Smazat zbytecne obrazovky (udalosti, trziste) a vyrobit nove (gate, ty udalosti/trziste jako variantu diskuze apod.)
    NYX
    NYX --- ---
    GIOMIKY: tohle je free verze a pokud to budu dokumentovat sam, asi i zustane...pokud neco neprehlizim :)
    NYX
    NYX --- ---
    GIOMIKY: Ja to postupne zacnu strkat do toho swaggeru...ten context treba vypada takhle https://app.swaggerhub.com/apis/nyx.cz/nyx.cz/0.0.1

    Predpokladam, ze nejdriv pokryju volani, ktera pouziva ted Fyx (je jich jen par co jsem koukal)...a pak casem nejak ten zbytek.
    NYX
    NYX --- ---
    NYX: asi to matou ty bookmarks uvnitr bookmarks :)

    NYX
    NYX --- ---
    GIOMIKY: imho to stale nedalo tu strukturu spravne
    NYX
    NYX --- ---
    VIRTUALVOID: Snad jo, az zacne fungovat ten automaticky generator :)
    VIRTUALVOID
    VIRTUALVOID --- ---
    NYX: bude k tomu swagger / openapi ? alebo aspon wiki ?
    NYX
    NYX --- ---
    GIOMIKY: Prepisovani imho zas tak moc ne, ted se pouziva jen par veci, ktere maji nejaky svuj ekvivalent...zbytek je novy a pouzit se nemusi.
    NYX
    NYX --- ---
    GIOMIKY: Zacnu dokumentovat co nejdriv, zatim ciste dump z toho co tam je:

    GET /api/gate
    GET /api/activity/<username>
    GET /api/people/active
    GET /api/people/active_friends
    GET /api/people/settings?<filter..>
    POST /api/profile/reference_reply/<reply_username>
    GET /api/icon/<username>
    GET /api/icon/<username>/discussion/<discussion_id>
    DELETE /api/profile/delete_token/<token>
    GET /api/mail
    GET /api/mail?<filter..>
    GET /api/mail/unread/<username>
    GET /api/mail/reminders
    POST /api/mail/send
    GET /api/mail/summary
    DELETE /api/mail/delete/<id>
    DELETE /api/mail/delete_unread/<id>
    POST /api/mail/reminder/<id>/<new_state>
    GET /api/notifications
    GET /api/bookmarks
    GET /api/bookmarks?<q..>
    GET /api/bookmarks/all
    GET /api/bookmarks/history
    GET /api/bookmarks/history/more
    GET /api/bookmarks/reminders
    POST /api/event/<discussion_id>/attendance/<new_state>
    POST /api/event/<did>/key_photo/<fid>
    GET /api/events?<q..>
    POST /api/events/location/<area_id>/<state>
    GET /api/market?<q..>
    GET /api/market/mine
    POST /api/market/<did>/state/<new_state>
    GET /api/market/<discussion_id>/parameters/<category_id>
    GET /api/discussion/<discussion_id> [2]
    GET /api/discussion/<discussion_id>?<filter..>
    GET /api/discussion/<discussion_id>/single/<id>
    GET /api/discussion/<discussion_id>/id/<id>/replies
    POST /api/discussion/rights?<q..>
    POST /api/discussion/rights/days_left?<q..>
    DELETE /api/discussion/rights?<q..>
    DELETE /api/discussion/<discussion_id>/delete/<id>
    POST /api/discussion/<discussion_id>/reminder/<id>/<new_state>
    POST /api/discussion/<discussion_id>/rating/<id>/<action>
    GET /api/discussion/<discussion_id>/rating/<id>
    POST /api/discussion/<discussion_id>/send/text
    GET /api/discussion/<discussion_id>/poll/<post_id>/results
    GET /api/discussion/<discussion_id>/content/poll/<content_id>/results
    POST /api/discussion/<discussion_id>/poll/<post_id>/vote/<answer_ids>
    POST /api/discussion/<discussion_id>/content/poll/<content_id>/vote/<answer_ids>
    POST /api/discussion/<discussion_id>/poll/<post_id>/finish
    POST /api/discussion/<discussion_id>/content/poll/<content_id>/finish
    POST /api/discussion/<discussion_id>/dice/<post_id>/roll
    POST /api/discussion/<discussion_id>/content/dice/<content_id>/roll
    POST /api/discussion/<discussion_id>/registration/<post_id>/confirm
    POST /api/discussion/<discussion_id>/discussion_create_request/<post_id>/vote_for
    POST /api/discussion/<discussion_id>/discussion_create_request/<post_id>/vote_against
    POST /api/discussion/<_discussion_id>/discussion_create_request/<post_id>/confirm
    POST /api/discussion/<_discussion_id>/discussion_create_request/<post_id>/cancel
    GET /api/last/discussions
    GET /api/last?<q..>
    GET /api/last
    GET /api/last/min_rating/<min_rating>
    GET /api/last/rated_by_friends
    PUT /api/file/upload
    DELETE /api/file/delete/<id>
    POST /api/file/embed/<id>/<state>
    GET /api/search/username/<username>
    GET /api/search/unified?<search>&<limit>
    GET /api/topics/category_for_dropdown/<domain_id>
    POST /api/create_token/<username>
    POST /api/register_for_notifications/<token>/<client>/<client_token>
    NYX
    NYX --- ---
    GIOMIKY: jj, viz nize

    Slušná část endpointů je dostupná čistě přidáním /api na začátek cesty, tj. z /mail se udělá /api/json a hurá, JSON. Jen někde dávalo smysl udělat nějaký custom, který akceptuje parametry v nějaké smysluplnější podobě.
    NYX
    NYX --- ---
    GIOMIKY: Moje blbost :)
    NYX
    NYX --- ---
    NYX: Samozrejme se svym nickem :) Takze

    curl --location --request POST 'https://alpha.nyx.cz/api/create_token/GIOMIKY'
    NYX
    NYX --- ---
    SH_PANDA: Ja se bojim, ze se mi to casem rozjede, proto jsem koukal po nejakem generatoru. A existuje neco, co bere v potaz i custom serializacni anotace, tak mi to prislo idealni.
    SH_PANDA
    SH_PANDA --- ---
    NYX: ja udrzuju u nas k aplikaci rucne open api spec a neni to az takovej vopruz jak by se zdalo. idea + nejaky openapi plugin
    NYX
    NYX --- ---
    Takže už je to venku, proč se to API bude měnit, tak nějaké detaily.

    Nový Nyx je napsaný tak, že je extrémně snadné vyklopit do JSONu data, která by normálně šla do šablony, tj. endpointy poměrně věrně zrcadlí jednotlivé stránky Nyxu samotného. Přijde mi to pro účely Nyxu smysluplnější než nějaké "skutečně" REST/GraphQL api. Slušná část endpointů je dostupná čistě přidáním /api na začátek cesty, tj. z /mail se udělá /api/json a hurá, JSON. Jen někde dávalo smysl udělat nějaký custom, který akceptuje parametry v nějaké smysluplnější podobě.

    Úpravy ze starého API by měly být poměrně snadné, změnit endpointy + parametry a popasovat se s novou strukturou toho, co přijde zpět + drobné změny v tom, jak chodí zpět textový obsah (trochu jinak chodí obrázky apod.).

    Chtěl jsem mít k dispozici rovnou i automaticky generovanou OpenAPI dokumentaci pro Swagger a spol., ale je teď nějaká nekonzistence mezi frameworkem a generátorem a nepodařilo se mi to zatím zprovoznit, tak snad časem :-/

    Velka cast API tam funguje uz ted, takze zacnu nejak dokumentovat rucne. Brzo dam na nastenku nejaky dokument, zatim tam dam aspon popis jak se prihlasit :-)
    LUCIEN
    LUCIEN --- ---
    LUCIEN: Pardon. Vrací, ale nechtěl jsem to používat protože to u některých klubů vrací poměrně velký HTML. Ale asi lepší než to cachovat u sebe.
    Kliknutím sem můžete změnit nastavení reklam