{"title":"Σταθερότητα του API","version":"3.1","locale":"el","docname":"misc/api-stability","url":"/el/3.1/misc/api-stability/","canonical":"https://djangodocs.dev/el/3.1/misc/api-stability/","summary":"Django is committed to API stability and forwards-compatibility. In a nutshell, this means that code you develop against a version of Django will continue to work…","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 is committed to API stability and forwards-compatibility. In a nutshell,\nthis means that code you develop against a version of Django will continue to\nwork with future releases. You may need to make minor changes when upgrading\nthe version of Django your project uses: see the «Backwards incompatible\nchanges» section of the <a class=\"reference internal\" href=\"/el/3.1/releases/\"><span class=\"doc\">release note</span></a> for the version\nor versions to which you are upgrading.</p>\n<p>At the same time as making API stability a very high priority, Django is also\ncommitted to continual improvement, along with aiming for «one way to do it»\n(eventually) in the APIs we provide. This means that when we discover clearly\nsuperior ways to do things, we will deprecate and eventually remove the old\nways. Our aim is to provide a modern, dependable web framework of the highest\nquality that encourages best practices in all projects that use it. By using\nincremental improvements, we try to avoid both stagnation and large breaking\nupgrades.</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/3.1/internals/release-process/#official-releases\"><span class=\"std std-ref\">επίσημες διανομές</span></a> για περισσότερες πληροφορίες σχετικά με την αρίθμηση των εκδόσεων του Django και την πολιτική του deprecation του Django.</p>\n</li>\n<li><p>We’ll only break backwards compatibility of these APIs without a deprecation\nprocess if a bug or security hole makes it completely unavoidable.</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/3.1/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/3.1/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/3.1/misc/"}],"prev":{"docname":"misc/index","title":"Εγχειρίδιο Meta και πολλά άλλα","url":"/el/3.1/misc/"},"next":{"docname":"misc/design-philosophies","title":"Φιλοσοφίες σχεδιασμού","url":"/el/3.1/misc/design-philosophies/"},"formats":{"html":"/el/3.1/misc/api-stability/","markdown":"/el/3.1/misc/api-stability.md","json":"/el/3.1/misc/api-stability.json"},"source":"https://github.com/django/django/blob/stable/3.1.x/docs/misc/api-stability.txt","official":"https://docs.djangoproject.com/el/3.1/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","zh-hans","fr","ja","id","pt-br","ko","es","el","pl"]}