2013-01-12 15 views

Odpowiedz

18

Polecam Ci Sphinx dodasz swoją dokumentację jako __doc__ i moduł Sfinks autodoc generuje docs dla Ciebie (docs.python.org wykorzystuje również Sfinksa). Znacznik to reST, podobny do Markdown.

np .:

@app.route('/download/<int:id>') 
def download_id(id): 
    '''This downloads a certain image specified by *id*''' 
    return ... 
+3

Istnieje nawet moduł Sphinx o nazwie sphinxcontrib.autohttp.flask (http://pythonhosted.org/sphinxcontrib-httpdomain/#module-sphinxcontrib.autohttp.flask). –

6

Jest to rozszerzenie Kolba: flask-autodoc dokumentacji auto specjalnie parsowania regułę trasy końcowego. Możesz dodać doc dekorator, aby określić, które API chcesz Doc:

@app.route('/doc') 
@auto.doc() 
def documentation(): 
    ''' 
    return API documentation page 
    ''' 
    return auto.html() 

@app.route('/') 
@auto.doc() 
def welcome(): 
    ''' 
    Welcome API 
    ''' 
    commit_hash = subprocess.check_output(["git", "rev-parse", "HEAD"]) 
    commit_msg = subprocess.check_output(["git", "log", "-1", "--format=%s"]) 
    date_time = subprocess.check_output(["git", "log", "-1", "--format=%cd"]) 
    return "Welcome to VM Service Server. <br/>" \ 
      "The last commit: %s<br/>Date: %s, <br>Hash: %s" % \ 
      (commit_msg, date_time, commit_hash), 200 

Prosta strona dokumentacji html jest tak:

enter image description here

+7

Zdaję sobie sprawę, że jest to pewnego rodzaju opinia, ale ostrzegałbym ludzi przed kolby-autodoc. Rozszerzenie jest naprawdę niekompletne. Zaczyna się świetnie, i ustawia się tak, jak można by oczekiwać, ale efekt końcowy jest nijakie. Większość ludzi porzuci go dla sfinksa i zmarnuje kilka godzin na kolbie-autodoc. – melchoir55

+0

Gdybym tylko widział to 30 minut temu ... +1 – Zeb

+0

Czy mógłbyś wyjaśnić, dlaczego automatyczna kolba-autodoc jest niekompletna? Rzuciłem okiem na dokumentację i podobało mi się to znacznie bardziej niż np. Flask-RESTplus. – imolit

16

bardzo podoba mi Swagger ponieważ pozwala wygenerować API dokumentację poprzez dodanie kilku dekoratorów i komentarzy do twojego kodu. Dostępny jest Flask Swagger.

from flask import Flask 
from flask.ext.restful import Api 
from flask_restful_swagger import swagger 

app = Flask(__name__) 
api = swagger.docs(Api(app), apiVersion='1', api_spec_url="/api/v1/spec") 

class Unicorn(Resource): 
"Describing unicorns" 
@swagger.operation(
    notes='some really good notes' 
) 
def get(self, todo_id): 
... 

Następnie można zobaczyć swoje metody i notatki w interfejsie html prostu odwiedzając/api/v1/spec (służy ona potrzebna statycznego automatycznie). Możesz również po prostu uzyskać cały opis API w JSON i przeanalizować go w inny sposób.

Powiązane problemy