Suchen
Inside Forum
Nützliche Links




 
phpforum.de bei Facebook
 
phpforum.de bei Twitter
 

Zurück   PHP Forum: phpforum.de > PHP > PHP

PHP Alles rund um PHP

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 17.01.2018, 22:07
elgreeco elgreeco ist offline
Besucher
 
Registriert seit: 17.10.2011
Beiträge: 39
Standard Best Practice zu DB Operations mit unkown Fields im Payload

Hi Mädels,

mal ne Frage bzgl ner Best Practice.

Man angenommen man hat ne REST Api um User auszulesen / einzutragen,.... Der Post Payload von Client hat zB die Datenstruktur:

PHP Quellcode:
{"username": "detlev", "age": "99", "sex": "gay"}


Die User Table hat die columns "username" und "age".

Nun gibt es in der Table keine column "sex", so das bei einem insert des gesamten Payloads mysql hier ein error wirft.

So nun die Frage: Klar werden die Payloads auf den Server validiert und gefiltert. Aber falls ein paar Daten zum Server übertragen werden, die zB NICHT konform sind (mit der DB Struktur), macht man trotzdem ein Insert in die DB (falls die anderen Daten stimmen und man nimmt dann NUR diese Daten, in dem Fall "username" und "age") oder trägt man NIX ein und bricht die ganze Operation ab (weil man zB hier das Feld "sex" nicht kennt)?

Was ist die Best pactice dazu? Wie händelt man das überlicherweise?

Danke!
Mit Zitat antworten
  #2  
Alt 17.01.2018, 22:47
Don T. Worry Don T. Worry ist offline
Engagierter Besucher
 
Registriert seit: 29.03.2012
Beiträge: 534
Standard AW: Best Practice zu DB Operations mit unkown Fields im Payload

Zitat:
Klar werden die Payloads auf den Server validiert und gefiltert.
Wenn die Daten gefiltert werden, wieso sind dann noch nicht-DB-relevante Daten übrig?
__________________
“Just think of how stupid the average person is, and then realize half of them are even stupider!” [George Carlin]
Mit Zitat antworten
  #3  
Alt 17.01.2018, 23:31
elgreeco elgreeco ist offline
Besucher
 
Registriert seit: 17.10.2011
Beiträge: 39
Standard AW: Best Practice zu DB Operations mit unkown Fields im Payload

Klar werden Nicht-Relevante Daten gefiltert, aber die Frage war eher ob man die gesamte operation abbrechen soll, wenn nicht DB Relevante Daten ankommen (wieso auch immer), oder ob man trotzdem alles was valide ist speichern soll.
Mit Zitat antworten
  #4  
Alt 18.01.2018, 10:17
Oliver Albers Oliver Albers ist offline
Forum-Mitarbeiter
 
Registriert seit: 03.12.2002
Beiträge: 27.413
Oliver Albers eine Nachricht über ICQ schicken
Standard AW: Best Practice zu DB Operations mit unkown Fields im Payload

Hm, kommt drauf an. Es macht deine API kompatibler, wenn Du illegale Eingaben korrigierst und dennoch verwendest. Und es entspräche Postel's Law.
Wenn du klar versionierte REST-Endpunkte hast würde ich aber persönlich lieber illegale Eingaben komplett verwerfen und einen Fehler ausgeben. Da hat der Verwender der API dann nämlich eventuell noch schlimmere Probleme mit drin.
__________________
Olli
Mit Zitat antworten
  #5  
Alt 20.01.2018, 02:20
elgreeco elgreeco ist offline
Besucher
 
Registriert seit: 17.10.2011
Beiträge: 39
Standard AW: Best Practice zu DB Operations mit unkown Fields im Payload

Ja, ein wirklich eindeutige Vorgehensweise gibt es wohl wirklich nicht. Scheint jeder anders zu händeln.

Ich habs in ZF jetz so programmiert, das ich vor allen Inserts usw mit einem "Payload TableColumn Field Mapper (hab ich jetzt mal so benannt, evtl gibt nen bessren namen)" die relevanten Felder aus den REST Payloads filter. Hab in der globale Config Datei eine "normal" und "strict" Setting eingebaut, über die das Verhalten gesteuert werden kann. In normal Modus wird der payload gespeichert, auch wenn dort irrelevanten Felder drin sind (falls dafür aber die relevanten Felder valid sind). Im strict Mode wird dagegen die gesamte Operation abgebrochen und direkt ein error in HTTP Response gesendet. Lässt sich dann nach belieben switchen.

thx

Geändert von elgreeco (20.01.2018 um 02:30 Uhr)
Mit Zitat antworten


Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu
Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
SOAP Webservice, XML error parsing SOAP payload on line 2: Invalid document end ShadowBSe PHP 10 21.08.2012 14:35
php genrate sql statement, mask fields RAFFIS PHP 4 15.12.2010 06:18
phpmailer: required fields werden ignoriert dieterhille PHP 4 08.04.2010 15:20
Fehler bei der Übergabe von hidden-fields Falke22 PHP 11 25.10.2007 15:35
Fehlermeldung: wrong number of fields spezified bibi_blocksberg PHP 1 16.12.2002 09:07


Alle Zeitangaben in WEZ +2. Es ist jetzt 20:52 Uhr.


Powered by vBulletin® Version 3.8.8 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Powered by NuWiki v1.3 RC1 Copyright ©2006-2007, NuHit, LLC