import api.schema as s from api.exceptions import RequestParseError from api.spec import Spec, Response from api.views import ApiView, Method from api.router import Router from django.conf import settings from django.contrib.auth import authenticate, login, logout from django.db.models import Q from django.shortcuts import redirect from . import signals from .models import User from .utils import random_key import copy router = Router(namespace='api') Errors = s.Object(errors=s.Array(s.String()), ) UserDef = s.Definition( 'User', s.Object( id=s.Integer(), email=s.String(), first_name=s.String(), short_name=s.String(), avatar=s.Optional(s.String()), )) class Signin(ApiView):
import api.schema as s from api.router import Router from api.spec import Spec, Response from api.views import ApiView, Method router = Router() class GetMethod(ApiView): """sample view doc""" spec = Spec(Method.GET, s.Empty, Response(204, description='okay')) def handle(self, data): return 204 class PostMethod(ApiView): spec = Spec(Method.POST, s.Empty, Response(204)) def handle(self, data): return 204 class InContractView(ApiView): spec = Spec(Method.GET, s.Query(foo=s.Number()), Response(204)) def handle(self, data): return 204
from api.router import Router if __name__ == '__main__': rt = Router() rt.listen("127.0.0.1", port=6001, ws_port=6002) # rt.set_domain("example.com") # 如果在服务器上使用 # rt.enable_debug() # 启用 Flask 调试 rt.run()
from operator import attrgetter from flask import Flask from api.db import (select_episode_by_season_and_episode_ids, select_episodes_by_season_id, select_ids_to_seasons) from api.decorators import jsonify, search, sortable from api.encoder import AppEncoder from api.router import Router app = Flask(__name__) app.json_encoder = AppEncoder router = Router(app) @router.route('/') @jsonify def index(): return router @router.route('/seasons') @jsonify @sortable('id', 'synopsis') @search('id') def index_seasons(): return list(select_ids_to_seasons().values()) @router.route('/seasons/<int:season_id>')