Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Χαίρεται, έστω ότι θέλω να υλοποιήσω ένα web service(σε PHP) το οποίο θα ενημερώνει τους clients αρχικα με τη διαθεσιμότητα κάποιου προιόντος, στη συνέχεια ο client αν θέλει θα μπορεί να κάνει κάποια κράτηση/αγορά και το web service θα ενημερώνει κατάλληλα τη βάση. Απ όσο έψαξα είδα πως αναφέρεται πολύ το SOAP(το οποίο μου φάνηκε λίγο περίεργο) και το RESTful (στο οποίο απ όσο κατάλαβα το περιεχόμενο γίνεται return σε json ή σε XML αλλά είναι και πάλι custom code?, όχι κάτι πιο 'στάνταρ' όπως το SOAP?). Οπότε μπορώ να υλοποιήσω κανονικά όπως θέλω το web service εγώ αρκεί να επιστρέφω ένα:

json_encode($outputArr);

ή θα έχω προβλήματα με το custom code οπότε να παώ προς το SOAP?

 

Δημοσ.

Ναι σε restful αυτη είναι η λόγικη πάνω-κάτω. Αλλά με τη προυπόθεση ότι στέλνεις και καταλληλα headers, status codes, και έχεις προνοήσει για όλα τα http verbs που θα χρησιμοποιήσει η εφαρμογή..

  • Like 1
Δημοσ.

Η ερώτηση "REST ή SOAP" σχεδόν δεν έχει νόημα γιατί REST και SOAP είναι τελείως διαφορετικά πράγματα και δεν έχουν καμία σχέση μεταξύ τους. Το πρώτο είναι αρχιτεκτονική ενώ το δεύτερο είναι πρωτόκολλο. Αν είμαστε τεχνικά ακριβείς το να τα συγκρίνει κανείς είναι σα να συγκρίνει το "ο στρατός έχει ξεκάθαρη ιεραρχία" με το "πώς κινούμαι όταν θέλω να πάρω άδεια". Η μόνη "σχέση" που έχουν είναι ότι αναφέρονται και τα δύο στο στρατό.

 

That said το γεγονός δεν είναι περίεργο γιατί υπάρχει ΤΡΕΛΛΗ παραπληροφόρηση σχετικά με το τι είναι το ένα και το άλλο, η οποία τρέφεται και από το γεγονός ότι όσοι δεν ξέρουν τι είναι REST βαφτίζουν REST οποιοδήποτε πρωτόκολλο επικοινωνίας που δεν είναι συγκεκριμένα κάτι άλλο (π.χ. SOAP). Αλλά και όσοι λένε ότι ξέρουν τι είναι REST... από προσωπική εμπειρία τις περισσότερες φορές δεν.

 

Στο θέμα σου τώρα:

  • Δεν έχει καμία σημασία σε τι μορφή επιστρέφεις το περιεχόμενο. Σε κάτι RESTful μπορείς να επιλέξεις αυθαίρετα ότι θέλεις (αφού δεν είναι πρωτόκολλο), σε SOAP αναγκαστικά θα έχεις XML μέχρι το σημείο που πρέπει για να υλοποιήσεις το πρωτόκολλο αλλά από κει και κάτω αν είσαι ταλιμπάν και θέλεις να βάλεις JSON δε σε εμποδίζει κανείς (bad idea βέβαια).
  • Το SOAP επειδή ακριβώς είναι πρωτόκολλο έχει πολύ συγκεκριμένα βήματα που πρέπει να ακολουθεί και ο client και ο server, που σημαίνει ότι για να κάνεις κάτι τέτοιο θα χρειαστεί να πας και συ σύμφωνα με τας γραφάς (και βέβαια δε θα κάνεις το implementation του SOAP μόνος σου, θα πάρεις έτοιμο).
  • Σε REST επειδή δεν είναι πρωτόκολλο μπορείς να κάνεις τα πράγματα όπως θέλεις, αλλά εφόσον τελικά υλοποιείς και συ πρωτόκολλο προφανώς δε γίνεται να μην κάνεις καθόλου τη δουλειά που κάνει το SOAP, υπάρχει λόγος που την κάνει. Έτσι αν θες να έχεις κάτι πρακτικά χρήσιμο τότε μπορεί να μη χρειαστείς WSDL και XSD αλλά κάτι θα χρειαστεί να κάνεις και να το τεκμηριώσεις με όποιο τρόπο νομίζεις.
  • Δεν υπάρχει περίπτωση να υλοποιήσεις REST με την τεχνικά σωστή έννοια του όρου στο επίπεδο γνώσης που είσαι. Αυτό που θα υλοποιήσεις θα είναι "ένα HTTP API". And there is nothing wrong with that, όλοι το κάνουν (Twitter πχ που λέει REST αλλά καμία σχέση). Δε θα έχεις πρόβλημα επειδή πήγες μ' αυτή τη μέθοδο.
  • Παρόλα αυτά όμως πρέπει να ξέρεις κάποια πράγματα σχετικά με HTTP (verbs, headers, status codes, τι είναι idempotence, αυτά που λέει ο mad professor παραπάνω).
  • Αν θέλεις να καταλάβεις τι είναι REST πρέπει να ξεκινήσεις καταλαβαίνοντας τι είναι HATEOAS.
  • Like 6
Δημοσ.

 

Η ερώτηση "REST ή SOAP" σχεδόν δεν έχει νόημα γιατί REST και SOAP είναι τελείως διαφορετικά πράγματα και δεν έχουν καμία σχέση μεταξύ τους

 

Επιτέλους! Είδα την ερώτηση του πρώτου post και πέταξα μία μπλε οθόνη.... ώσπου είδα αυτή την απάντηση. 

 

Και ένα ωραίο video με Laravel...

 

 

Δημοσ.

Χμμ, οκ αρχίζω να πιάνω το νόημα σιγά σιγά.

Thanks for the infos and sorry for the blue screens :P

 

 

Nah.... μην ζητάς sorry! Κλάην... αυτά είναι τα ωραία! 

 

 

Πιο πολλά θα μάθεις εσύ από τέτοιες ερωτήσεις και όχι από "λύσε μου την άσκηση" (δεν ξέρω εάν το έχεις κάνει ποτέ εσύ... γενικά το λέω) και πιο ωραία είναι και για τους άλλους :) 

  • Like 1
Δημοσ.

Ωραία, έστω ότι επιλέγω τώρα SOAP, βρήκα μια βιβλιοθήκη-->nuSoap(PHP, αλλά φένεται πως είναι παρατειμένω project, τελευταιο update 2013 ) προτείνεται ή θα ήταν καλύτερα να 'παίξω' εγώ με τις SOAP server/client της PHP?

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...