def __init__( self, *, title: str = "NinjaAPI", version: str = "1.0.0", description: str = "", openapi_url: Optional[str] = "/openapi.json", docs_url: Optional[str] = "/docs", urls_namespace: str = None, csrf: bool = False, auth: Union[Sequence[Callable], Callable, object] = NOT_SET, renderer: Optional[BaseRenderer] = None, parser: Optional[Parser] = None, ): self.title = title self.version = version self.description = description self.openapi_url = openapi_url self.docs_url = docs_url self.urls_namespace = urls_namespace or f"api-{self.version}" self.csrf = csrf self.renderer = renderer or JSONRenderer() self.parser = parser or Parser() self.auth: Optional[Sequence[Callable]] = NOT_SET if auth is not None and auth is not NOT_SET: self.auth = isinstance(auth, Sequence) and auth or [auth] self._routers: List[Tuple[str, Router]] = [] self.default_router = Router() self.add_router("", self.default_router)
def __init__( self, *, title: str = "NinjaAPI", version: str = "1.0.0", description: str = "", openapi_url: Optional[str] = "/openapi.json", docs_url: Optional[str] = "/docs", docs_decorator: Optional[Callable[[TCallable], TCallable]] = None, urls_namespace: Optional[str] = None, csrf: bool = False, auth: Optional[Union[Sequence[Callable], Callable, NOT_SET_TYPE]] = NOT_SET, renderer: Optional[BaseRenderer] = None, parser: Optional[Parser] = None, default_router: Optional[Router] = None, ): """ Args: title: A title for the api. description: A description for the api. version: The API version. urls_namespace: The Django URL namespace for the API. If not provided, the namespace will be ``"api-" + self.version``. openapi_url: The relative URL to serve the openAPI spec. docs_url: The relative URL to serve the API docs. csrf: Require a CSRF token for unsafe request types. See <a href="../csrf">CSRF</a> docs. auth (Callable | Sequence[Callable] | NOT_SET | None): Authentication class renderer: Default response renderer parser: Default request parser """ self.title = title self.version = version self.description = description self.openapi_url = openapi_url self.docs_url = docs_url self.docs_decorator = docs_decorator self.urls_namespace = urls_namespace or f"api-{self.version}" self.csrf = csrf self.renderer = renderer or JSONRenderer() self.parser = parser or Parser() self._exception_handlers: Dict[Exc, ExcHandler] = {} self.set_default_exception_handlers() self.auth: Optional[Union[Sequence[Callable], NOT_SET_TYPE]] if callable(auth): self.auth = [auth] else: self.auth = auth self._routers: List[Tuple[str, Router]] = [] self.default_router = default_router or Router() self.add_router("", self.default_router)