{"title":"Σταθερότητα του API","version":"1.11","locale":"el","docname":"misc/api-stability","url":"/el/1.11/misc/api-stability/","canonical":"https://djangodocs.dev/el/1.11/misc/api-stability/","summary":"Το Django δεσμεύεται όχι μόνο για τη σταθερότητα του API αλλά και για τη μελλοντική του, από την έκδοση 1.0, συμβατότητα. Με άλλα λόγια, ο κώδικας που γράφετε,…","html":"<h1>Σταθερότητα του API<a class=\"heading-anchor\" href=\"#api-stability\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>Το Django δεσμεύεται όχι μόνο για τη σταθερότητα του API αλλά και για τη μελλοντική του, από την έκδοση 1.0, συμβατότητα. Με άλλα λόγια, ο κώδικας που γράφετε, χρησιμοποιώντας μια έκδοση του Django, θα συνεχίσει να λειτουργεί και με μελλοντικές εκδόσεις. Θα χρειαστεί, μόνο, να κάνετε μερικές μικροαλλαγές όταν αναβαθμίζετε την έκδοση του Django για το project σας: δείτε στην ενότητα «Αλλαγές μη συμβατές με παλαιότερες εκδόσεις» του άρθρου <a class=\"reference internal\" href=\"/el/1.11/releases/\"><span class=\"doc\">σημειώσεις διανομής</span></a> για την έκδοση (ή τις εκδόσεις) στην οποία αναβαθμίζετε.</p>\n<section id=\"what-stable-means\">\n<h2>Τι σημαίνει «σταθερότητα»<a class=\"heading-anchor\" href=\"#what-stable-means\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Μέσα σε αυτό το πλαίσιο, σταθερότητα σημαίνει:</p>\n<ul>\n<li><p>Όλα τα δημόσια APIs (το οτιδήποτε μέσα σε αυτό το εγχειρίδιο) δεν θα μετακινηθούν ή μετονομαστούν χωρίς πρώτα να ορίσουν τα κατάλληλα aliases προκειμένου να είναι συμβατά με παλαιότερες εκδόσεις.</p></li>\n<li><p>Όταν προστεθούν νέα features σε αυτά τα δημόσια APIs – που είναι αρκετά συχνό φαινόμενο – δε θα σπάσουν ή αλλάξουν την έννοια των ήδη υπαρχουσών μεθόδων. Με άλλα λόγια, «σταθερότητα» δεν σημαίνει (απαραιτήτως) «τελικό», δηλαδή, αν προσθέσουμε μια μέθοδο Χ σε κάποιο API και στο μέλλον την εμπλουτίσουμε να δέχεται περισσότερα ορίσματα αλλά εσείς συνεχίζετε να χρησιμοποιείτε την πρώτη έκδοση της μεθόδου αυτής, τότε η μέθοδος που χρησιμοποιείτε παραμένει «σταθερή» (στη λειτουργία της) αλλά όχι στο «τελικό» της στάδιο (καθώς προστέθηκαν νέα features σε αυτή).</p></li>\n<li><p>Αν, για κάποιο λόγο, ένα API, δηλωμένο ως σταθερό, χρειαστεί να αφαιρεθεί ή να αντικατασταθεί, θα οριστεί ως deprecated και θα παραμείνει στο Django για τις επόμενες δύο διανομές, τουλάχιστον. Αν χρησιμοποιείτε, στον κώδικα σας, αυτό το API τότε θα εμφανίζονται κατάλληλα warnings για να σας ενημερώνουν σχετικά με το deprecation του API αυτού.</p>\n<p>Δείτε στις <a class=\"reference internal\" href=\"/el/1.11/internals/release-process/#official-releases\"><span class=\"std std-ref\">επίσημες διανομές</span></a> για περισσότερες πληροφορίες σχετικά με την αρίθμηση των εκδόσεων του Django και την πολιτική του deprecation του Django.</p>\n</li>\n<li><p>Ο μοναδικός λόγος που θα μας αναγκάσει να «σπάσουμε» τη συμβατότητα με παλαιότερες εκδόσεις είναι κάποιο σφάλμα στο API ή κάποιο κενό ασφάλειας.</p></li>\n</ul>\n</section>\n<section id=\"stable-apis\">\n<h2>Σταθερά APIs<a class=\"heading-anchor\" href=\"#stable-apis\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Γενικά, οτιδήποτε είναι γραμμένο στο εγχειρίδιο του Django, με εξαίρεση αυτά που είναι γραμμένα στα <a class=\"reference internal\" href=\"/el/1.11/internals/\"><span class=\"doc\">εσωτερικά του Django</span></a>, θεωρείται σταθερό.</p>\n</section>\n<section id=\"exceptions\">\n<h2>Εξαιρέσεις<a class=\"heading-anchor\" href=\"#exceptions\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Ωστόσο, υπάρχουν μερικές εξαιρέσεις στην ανωτέρω υπόσχεση σχετικά με τη σταθερότητα και την συμβατότητα με παλαιότερες εκδόσεις.</p>\n<section id=\"security-fixes\">\n<h3>Διορθώσεις σε θέματα ασφάλειας<a class=\"heading-anchor\" href=\"#security-fixes\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Αν αντιληφθούμε κάποιο πρόβλημα σχετικά με την ασφάλεια – από κάποιον που ακολούθησε την <a class=\"reference internal\" href=\"/el/1.11/internals/security/#reporting-security-issues\"><span class=\"std std-ref\">διαδικασία αναφοράς σφαλμάτων για θέματα ασφάλειας</span></a> – θα κάνουμε ότι είναι δυνατόν για να το φτιάξουμε. Αν χρειαστεί, για λόγους ασφάλειας, θα «σπάσουμε» τη συμβατότητα με παλαιότερες εκδόσεις. Βλέπετε, η ασφάλεια προέχει της συμβατότητας.</p>\n</section>\n<section id=\"apis-marked-as-internal\">\n<h3>APIs που έχουν οριστεί ως εσωτερικά<a class=\"heading-anchor\" href=\"#apis-marked-as-internal\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Κάποια συγκεκριμένα APIs έχουν οριστεί ως «εσωτερικά» με δύο τρόπους:</p>\n<ul class=\"simple\">\n<li><p>Μερικά σημεία στο εγχειρίδιο αναφέρονται στα «εσωτερικά» και τα αποκαλούν κατ’ αυτό τον τρόπο. Αν το εγχειρίδιο αναφέρει ότι κάτι είναι εσωτερικό, διατηρούμε το δικαίωμα να το αλλάξουμε.</p></li>\n<li><p>Συναρτήσεις, μέθοδοι και άλλα objects με το πρόθεμα της κάτω παύλας (<code class=\"docutils literal notranslate\"><span class=\"pre\">_</span></code>). Αυτός είναι ο συνήθης τρόπος στην Python για να προσδιορίσουμε κάτι ως private. Αν κάποια μέθοδος ξεκινάει με μια <code class=\"docutils literal notranslate\"><span class=\"pre\">_</span></code>, τότε θεωρείται εσωτερικό API.</p></li>\n</ul>\n</section>\n</section>","rootId":"api-stability","toc":[{"title":"Τι σημαίνει «σταθερότητα»","anchor":"what-stable-means","children":[]},{"title":"Σταθερά APIs","anchor":"stable-apis","children":[]},{"title":"Εξαιρέσεις","anchor":"exceptions","children":[{"title":"Διορθώσεις σε θέματα ασφάλειας","anchor":"security-fixes","children":[]},{"title":"APIs που έχουν οριστεί ως εσωτερικά","anchor":"apis-marked-as-internal","children":[]}]}],"breadcrumbs":[{"docname":"misc/index","title":"Εγχειρίδιο Meta και πολλά άλλα","url":"/el/1.11/misc/"}],"prev":{"docname":"misc/index","title":"Εγχειρίδιο Meta και πολλά άλλα","url":"/el/1.11/misc/"},"next":{"docname":"misc/design-philosophies","title":"Φιλοσοφίες σχεδιασμού","url":"/el/1.11/misc/design-philosophies/"},"formats":{"html":"/el/1.11/misc/api-stability/","markdown":"/el/1.11/misc/api-stability.md","json":"/el/1.11/misc/api-stability.json"},"source":"https://github.com/django/django/blob/stable/1.11.x/docs/misc/api-stability.txt","official":"https://docs.djangoproject.com/el/1.11/misc/api-stability/","inVersions":["6.1","6.0","5.2","5.1","5.0","4.2","4.1","4.0","3.2","3.1","3.0","2.2","2.1","2.0","1.11","1.10"],"inLocales":["en","fr","ja","id","pt-br","ko","es","el","pl"]}