License
Subject to the terms of the MIT license, as written in the included LICENSE.txt file.
Internal module with common functionality for REST interface generators.
Provides all necessary tools to implement an automated REST interface.
The given TImpl must be an interface or a class deriving from one.
RestInterfaceSettings settingsThe settings used to generate the interfacestring basePathFull base path of the interface, including an eventual `@path` annotation.string baseURLFull base URL of the interface, including an eventual `@path` annotation.[__traits(allMembers, I)] memberNamesThe name of each interface memberRouteFunctions.length routeCountRoute[routeCount] routesInformation about each routeSubInterfaceFunctions.length subInterfaceCountSubInterface[subInterfaceCount] subInterfacesInformation about sub interfacesvoid computeRoutes()auto getRoutesGroupedByPattern()Returns an array with routes grouped by path patternStaticRoute[routeCount] computeStaticRoutes()void computeSubInterfaces()string computeDefaultPath(alias method)(string name)this(RestInterfaceSettings settings, bool is_client)Fills the struct with information.GetSubInterfaceFunctions()GetSubInterfaceTypes()GetRouteFunctions()GetAllMethods()string functionNameHTTPMethod methodstring patternstring fullPatternbool pathHasPlaceholdersPathPart[] pathPartsPathPart[] fullPathPartsParameter[] parametersParameter wholeBodyParameterParameter[] queryParametersParameter[] bodyParametersParameter[] headerParametersParameter[] attributedParametersParameter[] internalParametersParameter[] authParametersParameter[] statusParametersbool isParameterinterpret `text` as a parameter name (including the leading underscore) or as raw textstring textstring functionNamestring rawNamebool pathOverrideHTTPMethod methodStaticParameter[] parametersRestInterfaceSettings settingsGet an UDATuple of WebParamAttribute at the index
This is evil complicated magic.
https://forum.dlang.org/post/qdmpfg$14f5$1@digitalmars.com