Η κύρια τεκμηρίωση του Odoo αναφέρει ότι η παλιά υπηρεσία RPC βάσης δεδομένων αφαιρείται στο Odoo 20. Τα ευρύτερα XML-RPC και JSON-RPC APIs έχουν καταργηθεί σταδιακά από την έκδοση 19.0, αλλά το Odoo 20 δεν αφαιρεί κάθε παλιά υπηρεσία. Το Odoo τεκμηριώνει ότι οι υπηρεσίες common και object παραμένουν διαθέσιμες έως το Odoo 22. (Odoo master Docs: Reference External API; Odoo master Docs: Reference External Rpc API) Οι ομάδες ενσωμάτωσης, επομένως, πρέπει να εντοπίσουν ποια υπηρεσία χρησιμοποιεί κάθε εξωτερική σύνδεση, αντί να αντιμετωπίζουν την υποστήριξη της παλιάς RPC ως ένα ενιαίο χαρακτηριστικό με μία ημερομηνία αφαίρεσης.

Η σελίδα εκδήλωσης του Odoo για την Αμερική ανέφερε ότι το Odoo 20 θα κυκλοφορήσει κατά την εκδήλωση στο Σαν Φρανσίσκο στις 2 και 3 Σεπτεμβρίου 2026. (Oxp26 Americas Introduction) Ο προγραμματισμός της αναβάθμισης μπορεί ήδη να λάβει υπόψη την τεκμηριωμένη αφαίρεση της υπηρεσίας βάσης δεδομένων, αλλά οι αποφάσεις παραγωγής πρέπει να ελεγχθούν με την τελική τεκμηρίωση έκδοσης του Odoo 20.

Η αφαίρεση αφορά μια συγκεκριμένη υπηρεσία

Το Odoo αναφέρει τα `/xmlrpc`, `/xmlrpc/2` και `/jsonrpc` ως παλιά endpoints που έχουν καταργηθεί σταδιακά από την έκδοση 19.0. Μέσα σε αυτά τα APIs, η υπηρεσία βάσης δεδομένων αφαιρείται στο Odoo 20, ενώ οι υπηρεσίες common και object προγραμματίζεται να παραμείνουν έως το Odoo 22. (Odoo master Docs: Reference External API; Odoo master Docs: Reference External Rpc API) Μια ενσωμάτωση που χρησιμοποιεί μια διατηρούμενη υπηρεσία μπορεί να συνεχίσει να λειτουργεί μετά από αναβάθμιση σε Odoo 20, αλλά το endpoint από μόνο του δεν αποδεικνύει συμβατότητα.

Ένα σύστημα μπορεί να χρησιμοποιεί διαφορετικές υπηρεσίες μέσω της παλιάς RPC διεπαφής. Μια ανασκόπηση ενσωμάτωσης θα πρέπει, επομένως, να καταγράφει τόσο το endpoint όσο και την υπηρεσία που καλείται. Η περιγραφή μιας εφαρμογής μόνο ως ενσωμάτωση XML-RPC ή JSON-RPC δεν δείχνει αν εξαρτάται από μια λειτουργία που αφαιρείται στο Odoo 20. (Odoo master Docs: Reference External API; Odoo master Docs: Reference External Rpc API)

Η συνεχιζόμενη διαθεσιμότητα των υπηρεσιών common και object είναι προσωρινή. Το Odoo προγραμματίζει την αφαίρεση και των δύο στο Odoo 22. (Odoo master Docs: Reference External API; Odoo master Docs: Reference External Rpc API) Οι ομάδες μπορούν να ξεχωρίσουν την επείγουσα εργασία για κλήσεις της υπηρεσίας βάσης δεδομένων από τη μετάβαση των διατηρούμενων υπηρεσιών, αλλά και τα δύο απαιτούν σχέδιο.

Το JSON-2 αλλάζει το συμβόλαιο του αιτήματος

Το Odoo τεκμηριώνει το JSON-2 ως το νέο API. Η μορφή του endpoint είναι `/json/2/<model>/<method>`, με το model και το method να περιλαμβάνονται στο URL. (Odoo master Docs: Reference External API) Η μετάβαση, επομένως, περιλαμβάνει περισσότερα από την αντικατάσταση της βασικής διαδρομής σε έναν υπάρχοντα RPC client. Κάθε λειτουργία πρέπει να αντιστοιχιστεί στο κατάλληλο route model και method.

Το JSON-2 απαιτεί ονομαστικά ορίσματα σε σώμα αιτήματος JSON, αντί για τα positional RPC arguments. (Odoo master Docs: Reference External API) Τα υπάρχοντα wrappers, middleware και generated clients μπορεί να υποθέτουν ότι η σειρά των ορισμάτων καθορίζει το νόημα. Αυτά τα στοιχεία χρειάζονται ξεχωριστή ανασκόπηση. Η ανακατεύθυνση ενός παλιού αιτήματος στο νέο endpoint δεν θα λειτουργήσει αν ο client συνεχίσει να συνθέτει positional παραμέτρους.

Για κάθε μεταφερόμενη λειτουργία, οι ομάδες θα πρέπει να καταγράφουν το target model, το method και τα named arguments που απαιτεί το JSON-2. (Odoo master Docs: Reference External API) Στη συνέχεια τα requests πρέπει να δοκιμάζονται στο σχετικό περιβάλλον Odoo 20, ιδιαίτερα όταν μια κοινόχρηστη integration library συνθέτει κλήσεις για πολλές εφαρμογές. Οι στατικές συγκρίσεις payload δεν μπορούν να επιβεβαιώσουν πώς χειρίζεται ο server ή ο client το πλήρες request.

Πρέπει επίσης να αλλάξει η αυθεντικοποίηση

Το JSON-2 χρησιμοποιεί αυθεντικοποίηση bearer API-key. (Odoo master Docs: Reference External API) Οι εργασίες μετεγκατάστασης θα πρέπει να καλύπτουν τη δημιουργία κλειδιών, την ασφαλή αποθήκευση, τον χειρισμό της κεφαλίδας εξουσιοδότησης και την αντικατάσταση κλειδιών. Οι διακομιστές μεσολάβησης, οι πύλες και οι βιβλιοθήκες πελάτη θα πρέπει να ελέγχονται ώστε να διασφαλίζεται ότι διατηρούν την κεφαλίδα κατά την προώθηση αιτημάτων. Η καταγραφή, η παρακολούθηση και ο χειρισμός σφαλμάτων θα πρέπει επίσης να εξεταστούν ώστε να μην εκτίθενται διαπιστευτήρια.

Η τεκμηρίωση καθορίζει τη μέθοδο ελέγχου ταυτότητας, αλλά κάθε οργανισμός πρέπει να καθορίσει πώς τα κλειδιά API εντάσσονται στους ελέγχους διαπιστευτηρίων του. (Odoo master Docs: Reference External API) Αυτό περιλαμβάνει τον ορισμό υπευθυνότητας για τα κλειδιά, τον έλεγχο του πού μπορούν να χρησιμοποιηθούν και τον καθορισμό του τρόπου με τον οποίο θα ενημερωθούν οι επηρεαζόμενες ενσωματώσεις όταν αντικατασταθεί ένα κλειδί.

Τα δυαδικά πεδία έχουν ξεχωριστή αλλαγή συμβατότητας

Το changelog του ORM της Odoo καταγράφει άλλη μία αλλαγή RPC στην Odoo 20: η αναπαράσταση των δυαδικών πεδίων προσθέτει το `BinaryValue.filename`. (Odoo master Docs: Orm Changelog) Αυτό είναι ξεχωριστό από την αφαίρεση της υπηρεσίας βάσης δεδομένων, επειδή αλλάζει τα επιστρεφόμενα δεδομένα και όχι τη διαθεσιμότητα της υπηρεσίας. Εφαρμογές που διαβάζουν, μετασχηματίζουν ή επαληθεύουν αποκρίσεις που περιέχουν δυαδικά πεδία θα πρέπει να περιλαμβάνονται στις δοκιμές συμβατότητας.

Το changelog επιβεβαιώνει ότι το μέλος `filename` προστίθεται, αλλά το πρακτικό του αποτέλεσμα εξαρτάται από τον πελάτη. (Odoo master Docs: Orm Changelog) Οι δοκιμές θα πρέπει να ελέγξουν αν αυστηρά σχήματα, σειριοποιητές, συγκρίσεις αποκρίσεων και μετασχηματισμοί downstream αποδέχονται το πρόσθετο μέλος. Οι πελάτες που αγνοούν άγνωστα πεδία ενδέχεται να μην χρειάζονται προσαρμογή, αλλά αυτή η συμπεριφορά θα πρέπει να επαληθευτεί και όχι να θεωρηθεί δεδομένη.

Πώς να οριοθετήσετε τον έλεγχο της ενσωμάτωσης

Ξεκινήστε εντοπίζοντας συνδέσεις που χρησιμοποιούν `/xmlrpc`, `/xmlrpc/2` ή `/jsonrpc`, τα οποία η Odoo χαρακτηρίζει ως παρωχημένα τελικά σημεία. (Odoo master Docs: Reference External API; Odoo master Docs: Reference External Rpc API) Το απόθεμα θα πρέπει να καλύπτει εσωτερικά ανεπτυγμένες εφαρμογές, ενδιάμεσο λογισμικό, προγραμματισμένες διεργασίες και συνδέσμους τρίτων, όπου η διαμόρφωση ή ο πηγαίος κώδικας είναι διαθέσιμα. Αναθέστε έναν υπεύθυνο σε κάθε σύνδεση, ώστε να μπορεί να επαληθευτεί ο σκοπός και η κατάστασή της.

Στη συνέχεια, ταξινομήστε κάθε σύνδεση ανά παλαιά υπηρεσία. Η χρήση της υπηρεσίας βάσης δεδομένων απαιτεί αποκατάσταση για την Odoo 20, ενώ η χρήση των common και object services παραμένει τεκμηριωμένα διαθέσιμη μέχρι την Odoo 22. (Odoo master Docs: Reference External API; Odoo master Docs: Reference External Rpc API) Αυτό υποστηρίζει ένα σταδιακό σχέδιο: αντιμετωπίστε πρώτα τη μη συμβατότητα της Odoo 20, και στη συνέχεια ορίστε ημερομηνίες μετεγκατάστασης για τις υπόλοιπες παρωχημένες κλήσεις.

Για ενσωματώσεις που μεταβαίνουν στο JSON-2, καταγράψτε τη διαδρομή `/json/2/<model>/<method>`, τα ονομαστικά ορίσματα του αιτήματος και τον έλεγχο ταυτότητας bearer API-key που απαιτείται από τη νέα διεπαφή. (Odoo master Docs: Reference External API) Τα σενάρια δοκιμών θα πρέπει να καλύπτουν επιτυχημένα αιτήματα, απορριφθέντα αιτήματα ελέγχου ταυτότητας, μη έγκυρα ονομαστικά ορίσματα και χειρισμό των επιστρεφόμενων δεδομένων από την εφαρμογή. Προσθέστε περιπτώσεις δυαδικών πεδίων όπου κι αν αυτά εμφανίζονται.

Επιβεβαιώστε την τελική συμπεριφορά της Odoo 20

Οι λεπτομέρειες της αφαίρεσης προέρχονται από την τεκμηρίωση προγραμματιστή του master της Odoo, ενώ ο ανακοινωμένος χρόνος κυκλοφορίας προέρχεται από μια σελίδα εκδήλωσης που αναφέρει ότι η Odoo 20 θα κυκλοφορούσε κατά τη διάρκεια της εκδήλωσης Americas του Σεπτεμβρίου 2026. (Odoo master Docs: Reference External API; Odoo master Docs: Reference External Rpc API; Oxp26 Americas Introduction) Πριν από την ανάπτυξη, οι ομάδες θα πρέπει να ελέγξουν ξανά την τεκμηρίωση για την κυκλοφορημένη έκδοση της Odoo 20 και τη συγκεκριμένη έκδοση και build που σκοπεύουν να χρησιμοποιήσουν.

Η χρήση ενός παρωχημένου τελικού σημείου RPC από μόνη της δεν αποδεικνύει ότι μια ενσωμάτωση θα σταματήσει να λειτουργεί στην Odoo 20, επειδή οι common και object services παραμένουν τεκμηριωμένα μέχρι την Odoo 22. Αντίστροφα, η επιτυχής λειτουργία σε παλαιότερη έκδοση δεν θεμελιώνει συμβατότητα για μια κλήση υπηρεσίας βάσης δεδομένων μετά την αφαίρεσή της. (Odoo master Docs: Reference External API; Odoo master Docs: Reference External Rpc API)

Λίστα ελέγχου απόφασης αναβάθμισης

Πριν εγκρίνουν μια αναβάθμιση στην Odoo 20, οι υπεύθυνοι λήψης αποφάσεων θα πρέπει να ζητήσουν ένα μητρώο ενσωματώσεων που να δείχνει κάθε παρωχημένο τελικό σημείο, την υπηρεσία που καλείται, τον υπεύθυνό του και το προγραμματισμένο σχέδιο αποκατάστασης. Οι εξαρτήσεις της υπηρεσίας βάσης δεδομένων θα πρέπει να έχουν δοκιμασμένη αντικατάσταση. Οι ενσωματώσεις που παραμένουν στις common ή object services θα πρέπει να έχουν ξεχωριστή ημερομηνία μετεγκατάστασης που να αντικατοπτρίζει την τεκμηριωμένη αφαίρεσή τους στην Odoo 22. (Odoo master Docs: Reference External API; Odoo master Docs: Reference External Rpc API)

Η ανασκόπηση θα πρέπει να επιβεβαιώνει ότι οι υλοποιήσεις JSON-2 τοποθετούν το μοντέλο και τη μέθοδο στο URL, χρησιμοποιούν ονομασμένα ορίσματα JSON και κάνουν έλεγχο ταυτότητας με API key bearer. Όπου υπάρχουν δυαδικά πεδία, οι δοκιμές θα πρέπει να λαμβάνουν υπόψη την προσθήκη του `BinaryValue.filename`. (Odoo master Docs: Reference External API; Odoo master Docs: Orm Changelog) Αυτοί οι έλεγχοι διακρίνουν την άμεση κατάργηση της υπηρεσίας βάσης δεδομένων στο Odoo 20 από την μεταγενέστερη απόσυρση των υπόλοιπων παλαιών υπηρεσιών.