ΑΣΗ είναι ένα ελαφρύ βοηθητικό πρόγραμμα Python για την εξυπηρέτηση Όπως-είναι το έγγραφο (που περιέχει κεφαλίδες και περιεχόμενο) μέσω HTTP.
Όταν πρόκειται για εργαλεία ελέγχου της μονάδας, οι οποίες αποφέρουν HTTP πόρους, εμείς αποφασίσαμε ότι θέλαμε να έχουμε έναν τρόπο να αποθηκεύσετε εύκολα προκαθορισμένες απαντήσεις, και στη συνέχεια να τους υπηρετούν από ένα διακομιστή με την ίδια μέθοδο όπως και εμείς τρέχει αυτές τις εξετάσεις. Δεν επιδιόρθωση μαϊμού, δεν υπάρχει υποδομή (όπως ένα διακομιστή μεσολάβησης caching).
Θα πρέπει να αναφερθεί ότι, αν ψάχνετε για να συλλάβει τα αιτήματα από τις υφιστάμενες υπηρεσίες και στη συνέχεια να επαναλάβει τους, το έργο βίντεο έχει μεταφερθεί σε πολλές γλώσσες και είναι πολύ χρήσιμη.
Τι είναι;
Twisted έρχεται με ένα χαρακτηριστικό που ονομάζεται ως έχει εξυπηρετούν, εμπνευσμένο από τον Apache. Όμως, ο οποίος επιθυμεί να συμπεριλάβει Twisted ως εξάρτηση;
Αυτό βασίζεται στο μπουκάλι, και ως εκ τούτου υποστηρίζει μια σειρά από backends WSGI (συμπεριλαμβανομένων των Twisted και gevent), και προορίζεται να είναι ελαφρύ. Ένα-όπως είναι το έγγραφο είναι εκείνο στο οποίο αποθηκεύονται τόσο οι κεφαλίδες και το περιεχόμενο για μια απόκριση HTTP:
HTTP / 1.0 200 OK
Content-Length: 137
Content-Type: text / html
& Nbsp?
& Nbsp? <Τίτλος> Βασικές δοκιμαστικής σελίδας
& Nbsp?
& Nbsp?
& Nbsp?
Γεια σας, είμαι μια δοκιμαστική σελίδα
& Nbsp?
Σημειώστε ότι αυτό απαιτεί μόνο νέες γραμμές για τις επικεφαλίδες - οι αποδόσεις μεταφορά προστίθενται αυτόματα για λόγους ευκολίας.
installation
Πανεύκολο:
sudo PIP εγκαταστήσετε ΑΣΗ
Ή για εκείνους που προτιμούν από την πηγή:
GIT κλώνος https://github.com/seomoz/asis
CD ΒΑΣΗ && sudo python setup.py εγκαταστήσετε
Χρήση
Μπορείτε να εκτελέσετε ένα διακομιστή ΑΣΗ σχετικά εύκολα:
ΒΑΣΗ εισαγωγής
# Σερβίρετε αρχεία που είναι αποθηκευμένα σε "foo /" στη θύρα 8080
διακομιστής = asis.Server ('foo', 8080)
server.run ()
...
server.stop ()
Εναλλακτικά, μπορεί να χρησιμοποιηθεί σε ένα πλαίσιο-διευθυντής μόδα:
ΒΑΣΗ εισαγωγής
αιτήσεις εισαγωγής
με asis.Server ('foo') ως διακομιστής:
& Nbsp? Requests.get («http: // localhost: 8080 / foo / bar.asis»)
Υπάρχει επίσης ένα βοηθητικό πρόγραμμα γραμμής εντολών που περιλαμβάνονται για την ευκολία για την εξυπηρέτηση ΑΣΗ αρχεία ως έναν αυτόνομο server, το οποίο είναι ιδιαίτερα χρήσιμο για να δει αυτά τα αρχεία μέσω κατσάρωμα ή το πρόγραμμα περιήγησης:
# Σερβίρετε τα αρχεία από 'foo / "στη θύρα 8080
ΒΑΣΗ-server foo --port 8080
# Το ίδιο, χρησιμοποιώντας gevent και είναι φλύαρο
ΒΑΣΗ-server foo --port 8080 --server gevent --verbose
κουδούνια και σφυρίχτρες
Υπάρχουν μερικά χαρακτηριστικά γνωρίσματα μπορεί να χρειαστεί να επωφεληθούν από:
Κωδικοποίηση περιεχομένου
Εάν παρέχετε την επικεφαλίδα Content-Encoding είτε ως gzip ή να ξεφουσκώσει, οι πεδιάδα περιεχόμενα αποθηκεύονται στο αρχείο συμπιέζεται και έστειλε πάνω από το σύρμα με αυτόν τον τρόπο. Σε αυτές τις περιπτώσεις, μπορείτε να αφήσετε το Content-Length ως 0, και το πραγματικό μήκος του περιεχομένου (μετά τη συμπίεση) θα αποσταλούν στη θέση του. Για παράδειγμα, τα ακόλουθα γίνει σταλεί ως gzip συμπιεσμένο περιεχόμενο σωστά στο πρόγραμμα περιήγησης:
HTTP / 1.0 200 OK
Content-Length: 0
Content-Type: text / plain
Κωδικοποίηση περιεχομένου: gzip
Γειά σου Κόσμε!
Σύνολοχαρακτήρων
Αν συμπεριλάβετε ένα χαρακτήρα στη Content-Type κεφαλίδα σας, τότε το περιεχόμενό σας θα πρέπει να ερμηνευθεί ως utf-8 στο δίσκο, και στη συνέχεια κωδικοποιούνται στην παρεχόμενη κωδικοποίηση. Η ιδέα είναι να βοηθήσει τη διαδικασία του μοντάζ, έτσι ώστε να μην χρειάζεται να σώσετε τα παραδείγματα σας στη δεδηλωμένη σύνολο χαρακτήρων τους. Όπως αλλαγές στην Κωδικοποίηση περιεχομένου, η επικεφαλίδα Content-Length επανυπολογίζεται να είναι σωστή μια φορά η μεταμόρφωση είναι πλήρης.
Λειτουργίες
Από προεπιλογή, ο διακομιστής ξεκίνησε με το διακομιστή gevent, και αυτό είναι που ξεκίνησε σε ένα φόντο πράσινο νήμα, και αυτό υποτίθεται ότι είναι έτοιμο να εξυπηρετήσει τις αιτήσεις το συντομότερο run () επιστρέφει.
Εναλλακτικά, ο διακομιστής μπορεί να ξεκινήσει σε δύο άλλους τρόπους, πιρούνι και μπλοκ. Αν πιρούνι, τότε θα εκτελέσετε το διακομιστή σε μια ξεχωριστή διαδικασία, και εξακολουθεί να λειτουργεί τόσο ως διαχειριστής πλαίσιο και μετά την κλήση run (). Εάν έχει επιλεγεί μπλοκ, τότε τρέχει με έναν τρόπο δέσμευσης. Για παράδειγμα:
# Να τρέξει σε μια ξεχωριστή διαδικασία
με asis.Server ("foo", port = 8080, mode = «πιρούνι»):
& Nbsp? # Κάνετε κάποια αιτήματα
& Nbsp? ...
Παραδείγματα και Δοκιμές
Περιλαμβάνονται εδώ είναι μια σειρά από παραδείγματα του-όπως είναι τα έγγραφα, και test.py μπορεί να τρέξει άμεσα για να βεβαιωθείτε ότι έχουν μεταφερθεί σωστά:
./test.py
Παρέχει επίσης ένα παράδειγμα για το πώς μπορεί να το ενσωματώσει σε δοκιμές μονάδα σας.
Συμβολή
. Ερωτήσεις, σχόλια, ιδέες πάντα ευπρόσδεκτα
Απαιτήσεις :
- Python
Τα σχόλια δεν βρέθηκε