Preskočiť na obsah

Referencia ​

Všetky triedy sú pod Tomaj\NetteApi.

Jadro ​

TriedaČo robíPríručka
ApiDeciderregister endpointov: addApi(), getApi(), getApis(), enableGlobalPreflight()Architektúra
Apijeden zaregistrovaný endpoint: endpoint, handler, autorizácia, obmedzenie požiadaviekArchitektúra
ApiHolderpoužíva ho ApiDecider: ako uchováva endpoint pred vytvorením handlera; handler môže byť ešte názov triedy alebo službyApiDecider
EndpointIdentifier / EndpointInterfacemetóda, verzia, balík, akciaHandlery
Presenters\ApiPresenterspracuje požiadavku krok po krokuSpracovanie v ApiPresenteri
DI\NetteApiExtensionzaregistruje služby a endpointy zo sekcie api: v neone (4.0.0)DI rozšírenie
Attribute\Get, Post, Put, Patch, Delete, Endpointatribúty endpointov na triede handlera (4.0.0)Endpointy z atribútov
Attribute\Authorization, Attribute\RateLimitautorizácia a obmedzenie požiadaviek pre endpointy triedy z atribútov (4.0.0)Endpointy z atribútov
DI\EndpointDefinitionjeden endpoint pre NetteApiExtension::addEndpoint() z iného rozšírenia (4.0.0)DI rozšírenie

Handlery ​

TriedaČo robíPríručka
Handlers\ApiHandlerInterface, BaseHandlervaše endpointyHandlery
Handlers\OpenApiHandlerOpenAPI 3.0 dokumentOpenAPI
Handlers\ApiListingHandlerJSON zoznam endpointov vo vlastnej verziiHandlery
Handlers\AlwaysOkHandler, EchoHandlerhealth check a testovacie endpointyHandlery
Handlers\DefaultHandler404 Unknown api endpointArchitektúra
Handlers\CorsPreflightHandler(Interface)odpovedá na OPTIONSCORS

Parametre a validácia ​

TriedaČo robíPríručka
Params\GetInputParam, PostInputParam, PutInputParam, CookieInputParam, FileInputParam, RawInputParam, JsonInputParamkaždá jeden vstupParametre
Params\InputParam, ParamInterface, ParamsProcessorzákladná trieda a spracovanieParametre
Validation\InputValidator, JsonSchemaValidator, InputType (enum)kontroly hodnôtParametre
ValidationResult\ValidationResult(Interface)výsledok kontrolyParametre

Odpovede a výstupy ​

TriedaČo robíPríručka
Response\ResponseInterfacečo implementuje každá odpoveďVýstupy
Response\JsonApiResponse, TextApiResponse, XmlApiResponse, RedirectResponsečo vracia handle()Výstupy
Output\JsonOutput, RedirectOutput, AbstractOutput, OutputInterfacedeklarované výstupyVýstupy
Output\Configurator\ConfiguratorInterface, EnvConfigurator, QueryConfigurator, DebuggerConfiguratorkedy kontrolovať výstupy a zobrazovať detailyVýstupy
Error\ErrorHandlerInterface, DefaultErrorHandlerchybové odpovedeSpracovanie chýb
Error\ProblemDetailsErrorHandler, NegotiatingErrorHandler, ProblemDetails, Response\ProblemDetailsResponsechyby podľa RFC 9457, 4.0.0Problem Details

Bezpečnosť ​

TriedaČo robíPríručka
Authorization\NoAuthorization, BearerTokenAuthorization, HeaderApiKeyAuthentication, QueryApiKeyAuthentication, CookieApiKeyAuthentication, BasicAuthenticationvstavaná autorizáciaAutorizácia
Authorization\ApiAuthorizationInterface, TokenAuthorizationvlastná autorizáciaAutorizácia
Misc\TokenRepositoryInterface, StaticTokenRepositorytokeny a ich IPAutorizácia
Misc\IpDetectorInterface, IpDetector, StaticIpDetectorIP klientaAutorizácia
RateLimit\RateLimiterInterface, RateLimitResult, FixedWindowLimiter, SlidingWindowLimiter, TokenBucketLimiter, AlgorithmLimiter, RateLimiterChain, NoRateLimitobmedzenie požiadaviek (4.0.0)
RateLimit\Algorithm\RateLimitAlgorithmInterface, Storage\RateLimitStorageInterface, Key\RateLimitKeyInterface, Redis\RedisClientInterface, Storage\KeyValueStorage, Authorization\AuthorizationIdentityInterfacevlastné algoritmy, úložiská, kľúče, Redis klienti a identita volajúceho (4.0.0)
RateLimit\RateLimitInterface, RateLimitResponseobmedzenie z 3.x, zastarané, odstránené v 5.0Obmedzenie požiadaviek

Logovanie, odkazy a konzola ​

TriedaČo robíPríručka
Logger\ApiLoggerInterfacelog požiadaviekLogovanie
Link\ApiLink, ApiLinkExtension, ApiLinkNodeURL a tag {apiLink}Odkazy
Component\ApiListingControl, ApiConsoleControl, ApiConsoleFormFactoryInterface, DefaultApiConsoleFormFactorywebová konzolaWebová konzola
Misc\ConsoleRequest, ConsoleResponsecURL požiadavka konzolyWebová konzola
Misc\CorsOriginAllowlistinterné (@internal), používa ho setCorsAllowedOrigins(); vo 4.0 sa môže zmeniťCORS
Misc\OpenApiTransformpomocné funkcie pre OpenAPIOpenAPI

Časté otázky ​

Ktoré triedy sú final? ​

Presenters\ApiPresenter, Error\DefaultErrorHandler, Latte triedy Link\ApiLinkExtension a Link\ApiLinkNode a interná Misc\CorsOriginAllowlist sú final; namiesto dedenia ich obaľte. Pozrite si Spracovanie chýb.

Od verzie 4.0 sú final aj: Api, ApiHolder, EndpointIdentifier, Authorization\NoAuthorization, RateLimit\NoRateLimit, RateLimit\RateLimitResponse, Misc\IpDetector, Misc\StaticIpDetector, Misc\StaticTokenRepository, Misc\ConsoleRequest, Misc\ConsoleResponse, Misc\OpenApiTransform, Params\ParamsProcessor, Validation\InputValidator, Validation\JsonSchemaValidator, ValidationResult\ValidationResult, výstupné konfigurátory DebuggerConfigurator, EnvConfigurator a QueryConfigurator a OpenApi\SchemaRegistry a OpenApi\EndpointFilter. Namiesto dedenia implementujte príslušné rozhranie (IpDetectorInterface, TokenRepositoryInterface, ApiAuthorizationInterface, RateLimitInterface, ConfiguratorInterface, …). Handlery, parametre, výstupy, odpovede, autorizácie, OpenAPI buildery, ApiDecider, ApiLink, komponenty konzoly a DefaultApiConsoleFormFactory sa dajú ďalej rozširovať. Výnimkou je Handlers\DefaultHandler, ktorý je final; vlastnú 404 vráťte z metódy handleNotFound() error handlera.

Kde nájdem signatúry metód? ​

V zdrojovom kóde na GitHube; stránky príručky ukazujú tie, ktoré používate.

Ktoré triedy sú zastarané? ​

Žiadne. setExample() pri parametroch a výstupoch bolo vo verzii 4.0 odstránené; použite addExample(). Staré StaticBearerTokenRepository a BearerTokenRepositoryInterface boli vo verzii 4.0 odstránené. Použite StaticTokenRepository a TokenRepositoryInterface, ktoré fungujú rovnako.

Existuje DI rozšírenie? ​

Áno, od verzie 4.0.0: DI\NetteApiExtension nastaví celé API z jednej neon sekcie api:, pozrite DI rozšírenie. Registrácia bežných služieb v NEON ako v Začíname funguje ďalej.

Ako vyzerá celý projekt? ​

Pozrite si príklady.

Vydané pod licenciou MIT.