Pouze tento týden sleva až 80 % na e-learning týkající se C# .NET
Aktuálně: Postihly zákazy tvou profesi? Poptávka po ajťácích prudce roste, využij slevové akce 80% výuky zdarma!
birthday

Diskuze: PHP MySQL API - GET / POST (Insert, Delete, Update) - Jak na to

Aktivity (4)
Avatar
Petr Nymsa
Redaktor
Avatar
Petr Nymsa:18.2.2014 19:08

Ahoj, už kdysi dávno jsem tu (nebo Neaktivní uživatel) dávali. Potřebujeme si vytvořit API pro přístup k MySQL pro naše klienty. Naše představa je zhruba následující (vycházíme z OOP a "MVC").

Máme tedy například tyto tabulky
User - id,name,email
Item - id, id_user, name, price

Když budu chtít po API získat všechny uživatele (USER) zavolám..api/user
Když všechny itemy - api/item
Když například usera s ID = 1 tak ..api/user?id=1

Vnitřně to bude fungovat následovně:

  1. třída router převezme požadavek
  2. vytvoří třídu User, která bude dědit od abstraktní třídy DBInfo (get data, insert data)
  3. User zpracuje a vrátí XML / JSON

Tj, s GET problém nevidím. Problém je s POST resp. akcemi typu DELETE,INSERT, UPDATE.

Jak nejlíp na to ? A vůbec je naše myšlenka dobrá nebo celá špatně ? Díky

Odpovědět
18.2.2014 19:08
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Petr Nymsa
David Čápka:18.2.2014 19:16

Dobrá myšlenka to určitě je. Pokud to chcete opravdu robustní, tak se používá REST. Většinou si však vystačíte s metodami GET a POST. Co se týká toho PHP, tak tam hodnoty normálně vytaháte z postu, jako by vám přišly formulářem. Jak odeslat něco postem je už na klientovi (předpokládám, že to bude C#).

Nahoru Odpovědět
18.2.2014 19:16
Jsem moc rád, že jsi na síti, a přeji ti top IT kariéru, ať jako zaměstnanec nebo podnikatel. Máš na to! :)
Avatar
Odpovídá na Petr Nymsa
Neaktivní uživatel:18.2.2014 19:30

Osobně se přikláním místo k

..api/user?id=1

spíš k

..api/user/1/

Už jen kvůli vytáhání jen některých hodnot, které pak bude daleko jednodušší:

1) Chci celého usera

..api/user/1/

2) Chci jen jeho jméno a email

..api/user/1/?name&email

Nehledě na to, že to je i hezčí a přehlednější :D

Editováno 18.2.2014 19:32
Nahoru Odpovědět
18.2.2014 19:30
Neaktivní uživatelský účet
Avatar
Petr Nymsa
Redaktor
Avatar
Odpovídá na David Čápka
Petr Nymsa:18.2.2014 19:33

Bude to C# / Java. Každopádně jde mi o to jak rozeznat Delete / Insert / Update ? Posílat ještě v POST informaci o co se jedná ?

Nahoru Odpovědět
18.2.2014 19:33
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
Odpovídá na Petr Nymsa
Neaktivní uživatel:18.2.2014 19:40

S insertem by to šlo udělat třeba tak, že by se poslal post na

...api/user/

Update by mohl být post na

...api/user/1/

Jen ten delete nevím ...

Nahoru Odpovědět
18.2.2014 19:40
Neaktivní uživatelský účet
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Petr Nymsa
David Čápka:18.2.2014 20:00

Metody rozeznáš podle URL. Budeš mít třeba /user, to je GET, potom /user/delete, /user/update, /user/insert. Hlavně si tam udělej nějakou autentifikaci, kdyby to API někdo zjistil.

Nahoru Odpovědět
18.2.2014 20:00
Jsem moc rád, že jsi na síti, a přeji ti top IT kariéru, ať jako zaměstnanec nebo podnikatel. Máš na to! :)
Avatar
Luboš Běhounek Satik
Autoredaktor
Avatar
Odpovídá na Petr Nymsa
Luboš Běhounek Satik:18.2.2014 20:02

co tam jeste do ty cesty tu akci pridat?

..api/insert/user/    // vlozi uzivatele
..api/user/           // vrati vsechny
..api/delete/user/1/  // smaze uzivatele 1, pripadne pres ?id=1
apod.
Nahoru Odpovědět
18.2.2014 20:02
https://www.facebook.com/peasantsandcastles/
Avatar
Petr Nymsa
Redaktor
Avatar
Odpovídá na David Čápka
Petr Nymsa:18.2.2014 20:48
Nahoru Odpovědět
18.2.2014 20:48
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
petr
Redaktor
Avatar
petr:28.2.2014 9:49

Jestli to celé píšeš od začátku, nebylo by lepší už rovnou to postavit na FullREST API? Jinak, metodu je IMHO lepší uvádět v header requestu.

 
Nahoru Odpovědět
28.2.2014 9:49
Avatar
Petr Nymsa
Redaktor
Avatar
Odpovídá na petr
Petr Nymsa:28.2.2014 9:50

Už máme něco napsaného. Věřím že jestli se projekt rozroste, budeme to asi muset předělat. Zatím to zcela vyhovuje našim záměrům - uvidíme

Nahoru Odpovědět
28.2.2014 9:50
Pokrok nezastavíš, neusni a jdi s ním vpřed
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 10.