Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > pl.comp.lang.php > #16036

Re: Serwer REST

Newsgroups pl.comp.lang.php
From Wojciech Bancer <wojciech.bancer@gmail.com>
Subject Re: Serwer REST
References <1t1f1d2pfc90d.dlg@tyczka.com> <slrnq503uh.25n9.wojciech.bancer@pl-test.org> <1jylb29ds7hxx.dlg@tyczka.com>
Organization None
Date 2019-01-29 13:05 +0100
Message-ID <slrnq50gcs.29i4.wojciech.bancer@pl-test.org> (permalink)

Show all headers | View raw


On 2019-01-29, Roman Tyczka <noemail@because.no> wrote:
> On Tue, 29 Jan 2019 09:33:20 +0100, Wojciech Bancer wrote:
>
>>> Potrzebuję w PHP wystawić prościutkie API restowe, kilka metod
>>> odczytujących i zapisujących coś do bazy. 
>>> Jakiej biblioteki PHP użyć bym nie stracił na to kilku dni uczenia?
>> 
>> To jest teraz na topie:
>> https://api-platform.com/
>
> Dzięki, wygląda interesująco, ale to jest raczej olbrzymi kombajn a nie
> mały cusiek do rozkminy w kilka godzin. Zapisuje do zakładek i będę powoli
> trawił, ale na już czegoś małego potrzebuję, chyba wezmę to co sam
> znalazłem na razie.

Z takiego pobieżnego "rzutu okiem", to goły Symfony ma podobną funkcjonalność, np.:

/**
 * @Route("/api")
 */
class ApiController
{
    /**
     * @Route("/study/{study}/report/{report}", methods={"GET"}, defaults={"_format"="json"})
     */
    public function getReportDetails(Study $study, StudyReport $report)
    {
        // .../

        return new JsonResponse([
            'status' => 'ok',
            'data' => $report->getSelectedData(),
            'options' => $report->getOptions()
        ]);
    }
}

a obiekt wysłany POSTem możesz pobrać przez:

$data = json_decode($request->getContent(), true);

i dalej potraktować np. albo przez json schema validator,
albo przez walidatory wbudowane w symfony (czyli stworzenie
klasy FormType).

CORS załatwia:
https://github.com/nelmio/NelmioCorsBundle
(albo ustawienia serwera).

Przy czym warto pamiętać, że jak chcesz obsługiwać ruch z frameworków,
to one często wysyłają najpierw na ten sam URL request z metodą OPTION,
zeby właśnie zweryfikować CORSy. :)

-- 
Wojciech Bańcer
wojciech.bancer@gmail.com

Back to pl.comp.lang.php | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Serwer REST Roman Tyczka <noemail@because.no> - 2019-01-28 14:44 +0100
  Re: Serwer REST Marek S <precz@spamowi.com> - 2019-01-28 21:49 +0100
    Re: Serwer REST Roman Tyczka <noemail@because.no> - 2019-01-29 09:07 +0100
      Re: Serwer REST Marek S <precz@spamowi.com> - 2019-01-29 22:04 +0100
        Re: Serwer REST Roman Tyczka <noemail@because.no> - 2019-01-30 08:33 +0100
    Re: Serwer REST Wojciech Bancer <wojciech.bancer@gmail.com> - 2019-01-29 09:42 +0100
      Re: Serwer REST Borys Pogoreło <borys@pl.edu.leszno> - 2019-01-29 15:48 +0100
  Re: Serwer REST Wojciech Bancer <wojciech.bancer@gmail.com> - 2019-01-29 09:33 +0100
    Re: Serwer REST Roman Tyczka <noemail@because.no> - 2019-01-29 11:58 +0100
      Re: Serwer REST Wojciech Bancer <wojciech.bancer@gmail.com> - 2019-01-29 13:05 +0100
      Re: Serwer REST Borys Pogoreło <borys@pl.edu.leszno> - 2019-01-29 15:45 +0100

csiph-web