791ebf4f78
This PR contains the work done to implement the `UserAgentMiddleware` middleware that includes user agent information into a header of the requests sent by the `Client` type, as defined in the [Discogs documentation](https://www.discogs.com/developers/#page:home,header:home-general-information). For this purpose, the `CamelCaseValidationRule`, `SemanticVersionValidationRule` and `URLValidationRule` types were implemented and integrated into the existing `ValidateInputUseCase` type. Reviewed-on: #6 Co-authored-by: Javier Cicchelli <javier@rock-n-code.com> Co-committed-by: Javier Cicchelli <javier@rock-n-code.com>
1 line
7.9 KiB
JSON
1 line
7.9 KiB
JSON
{"identifier":{"url":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/UserAgentMiddleware","interfaceLanguage":"swift"},"abstract":[{"text":"A middleware that attaches the user agent header into the requests to the service.","type":"text"}],"topicSections":[{"generated":true,"title":"Initializers","anchor":"Initializers","identifiers":["doc:\/\/DiscogsService\/documentation\/DiscogsService\/UserAgentMiddleware\/init(product:)"]},{"generated":true,"title":"Default Implementations","anchor":"Default-Implementations","identifiers":["doc:\/\/DiscogsService\/documentation\/DiscogsService\/UserAgentMiddleware\/ClientMiddleware-Implementations"]}],"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/discogsservice\/useragentmiddleware"]}],"metadata":{"symbolKind":"struct","externalID":"s:14DiscogsService19UserAgentMiddlewareV","roleHeading":"Structure","title":"UserAgentMiddleware","modules":[{"name":"DiscogsService"}],"navigatorTitle":[{"text":"UserAgentMiddleware","kind":"identifier"}],"fragments":[{"text":"struct","kind":"keyword"},{"text":" ","kind":"text"},{"text":"UserAgentMiddleware","kind":"identifier"}],"role":"symbol"},"primaryContentSections":[{"declarations":[{"tokens":[{"text":"struct","kind":"keyword"},{"text":" ","kind":"text"},{"text":"UserAgentMiddleware","kind":"identifier"}],"languages":["swift"],"platforms":["macOS"]}],"kind":"declarations"},{"content":[{"text":"Overview","type":"heading","level":2,"anchor":"overview"},{"type":"paragraph","inlineContent":[{"type":"text","text":"Please refer to the "},{"type":"reference","identifier":"https:\/\/www.discogs.com\/developers\/#page:home,header:home-general-information","isActive":true},{"type":"text","text":" for further information."}]}],"kind":"content"}],"kind":"symbol","seeAlsoSections":[{"generated":true,"title":"User Agent","anchor":"User-Agent","identifiers":["doc:\/\/DiscogsService\/documentation\/DiscogsService\/Product","doc:\/\/DiscogsService\/documentation\/DiscogsService\/InputValidationError"]}],"hierarchy":{"paths":[["doc:\/\/DiscogsService\/documentation\/DiscogsService"]]},"sections":[],"schemaVersion":{"major":0,"patch":0,"minor":3},"relationshipsSections":[{"identifiers":["doc:\/\/DiscogsService\/14OpenAPIRuntime16ClientMiddlewareP","doc:\/\/DiscogsService\/s8CopyableP","doc:\/\/DiscogsService\/s8SendableP","doc:\/\/DiscogsService\/s16SendableMetatypeP"],"type":"conformsTo","title":"Conforms To","kind":"relationships"}],"references":{"doc://DiscogsService/s16SendableMetatypeP":{"type":"unresolvable","identifier":"doc:\/\/DiscogsService\/s16SendableMetatypeP","title":"Swift.SendableMetatype"},"doc://DiscogsService/documentation/DiscogsService/Product":{"type":"topic","role":"symbol","navigatorTitle":[{"kind":"identifier","text":"Product"}],"abstract":[{"type":"text","text":"A type that represents a product that uses the "},{"isActive":true,"type":"reference","identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/Client"},{"type":"text","text":" client."}],"identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/Product","title":"Product","url":"\/documentation\/discogsservice\/product","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Product"}],"kind":"symbol"},"doc://DiscogsService/14OpenAPIRuntime16ClientMiddlewareP":{"type":"unresolvable","identifier":"doc:\/\/DiscogsService\/14OpenAPIRuntime16ClientMiddlewareP","title":"OpenAPIRuntime.ClientMiddleware"},"doc://DiscogsService/documentation/DiscogsService/UserAgentMiddleware":{"abstract":[{"type":"text","text":"A middleware that attaches the user agent header into the requests to the service."}],"type":"topic","kind":"symbol","role":"symbol","navigatorTitle":[{"kind":"identifier","text":"UserAgentMiddleware"}],"fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"UserAgentMiddleware"}],"title":"UserAgentMiddleware","identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/UserAgentMiddleware","url":"\/documentation\/discogsservice\/useragentmiddleware"},"doc://DiscogsService/documentation/DiscogsService":{"title":"DiscogsService","role":"collection","abstract":[],"kind":"symbol","type":"topic","identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService","url":"\/documentation\/discogsservice"},"doc://DiscogsService/s8CopyableP":{"type":"unresolvable","identifier":"doc:\/\/DiscogsService\/s8CopyableP","title":"Swift.Copyable"},"doc://DiscogsService/documentation/DiscogsService/UserAgentMiddleware/init(product:)":{"fragments":[{"text":"init","kind":"identifier"},{"text":"(","kind":"text"},{"text":"product","kind":"externalParam"},{"kind":"text","text":": "},{"text":"Product","kind":"typeIdentifier","preciseIdentifier":"s:14DiscogsService7ProductV"},{"text":") ","kind":"text"},{"text":"throws","kind":"keyword"}],"identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/UserAgentMiddleware\/init(product:)","kind":"symbol","title":"init(product:)","role":"symbol","abstract":[{"type":"text","text":"Initializes this middleware."}],"type":"topic","url":"\/documentation\/discogsservice\/useragentmiddleware\/init(product:)"},"https://www.discogs.com/developers/#page:home,header:home-general-information":{"titleInlineContent":[{"type":"text","text":"Discogs documentation"}],"type":"link","title":"Discogs documentation","identifier":"https:\/\/www.discogs.com\/developers\/#page:home,header:home-general-information","url":"https:\/\/www.discogs.com\/developers\/#page:home,header:home-general-information"},"doc://DiscogsService/documentation/DiscogsService/Client":{"url":"\/documentation\/discogsservice\/client","type":"topic","title":"Client","kind":"symbol","fragments":[{"text":"struct","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Client","kind":"identifier"}],"navigatorTitle":[{"text":"Client","kind":"identifier"}],"abstract":[{"text":"The Discogs API v2.0 is a RESTful interface to Discogs data. You can access JSON-formatted information about Database objects such as ","type":"text"},{"inlineContent":[{"type":"text","text":"Artists"}],"type":"emphasis"},{"text":", ","type":"text"},{"inlineContent":[{"type":"text","text":"Releases"}],"type":"emphasis"},{"text":", and ","type":"text"},{"inlineContent":[{"type":"text","text":"Labels"}],"type":"emphasis"},{"text":". Your application can also manage ","type":"text"},{"inlineContent":[{"type":"text","text":"User Collections"}],"type":"emphasis"},{"text":" and ","type":"text"},{"inlineContent":[{"type":"text","text":"Wantlists"}],"type":"emphasis"},{"text":", create ","type":"text"},{"inlineContent":[{"type":"text","text":"Marketplace"}],"type":"emphasis"},{"text":" listings, and more.","type":"text"}],"role":"symbol","identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/Client"},"doc://DiscogsService/documentation/DiscogsService/InputValidationError":{"role":"symbol","identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/InputValidationError","abstract":[{"type":"text","text":"A representation of all the possible validation error that could be thrown while validating an input."}],"navigatorTitle":[{"text":"InputValidationError","kind":"identifier"}],"type":"topic","kind":"symbol","fragments":[{"text":"enum","kind":"keyword"},{"text":" ","kind":"text"},{"text":"InputValidationError","kind":"identifier"}],"title":"InputValidationError","url":"\/documentation\/discogsservice\/inputvalidationerror"},"doc://DiscogsService/documentation/DiscogsService/UserAgentMiddleware/ClientMiddleware-Implementations":{"title":"ClientMiddleware Implementations","identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/UserAgentMiddleware\/ClientMiddleware-Implementations","kind":"article","abstract":[],"role":"collectionGroup","type":"topic","url":"\/documentation\/discogsservice\/useragentmiddleware\/clientmiddleware-implementations"},"doc://DiscogsService/s8SendableP":{"type":"unresolvable","identifier":"doc:\/\/DiscogsService\/s8SendableP","title":"Swift.Sendable"}}} |