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
44 KiB
JSON
1 line
44 KiB
JSON
{"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/discogsservice\/client"]}],"topicSections":[{"generated":true,"identifiers":["doc:\/\/DiscogsService\/documentation\/DiscogsService\/Client\/init(serverURL:configuration:transport:middlewares:)"],"title":"Initializers","anchor":"Initializers"},{"generated":true,"identifiers":["doc:\/\/DiscogsService\/documentation\/DiscogsService\/Client\/getArtist(_:)","doc:\/\/DiscogsService\/documentation\/DiscogsService\/Client\/getArtistReleases(_:)","doc:\/\/DiscogsService\/documentation\/DiscogsService\/Client\/getLabel(_:)","doc:\/\/DiscogsService\/documentation\/DiscogsService\/Client\/getLabelReleases(_:)","doc:\/\/DiscogsService\/documentation\/DiscogsService\/Client\/getMaster(_:)","doc:\/\/DiscogsService\/documentation\/DiscogsService\/Client\/getMasterVersions(_:)","doc:\/\/DiscogsService\/documentation\/DiscogsService\/Client\/getRelease(_:)","doc:\/\/DiscogsService\/documentation\/DiscogsService\/Client\/getReleaseRating(_:)","doc:\/\/DiscogsService\/documentation\/DiscogsService\/Client\/getReleaseRatingByUser(_:)","doc:\/\/DiscogsService\/documentation\/DiscogsService\/Client\/getReleaseStats(_:)","doc:\/\/DiscogsService\/documentation\/DiscogsService\/Client\/getService(_:)","doc:\/\/DiscogsService\/documentation\/DiscogsService\/Client\/searchDatabase(_:)"],"title":"Instance Methods","anchor":"Instance-Methods"},{"generated":true,"identifiers":["doc:\/\/DiscogsService\/documentation\/DiscogsService\/Client\/APIProtocol-Implementations"],"title":"Default Implementations","anchor":"Default-Implementations"}],"hierarchy":{"paths":[["doc:\/\/DiscogsService\/documentation\/DiscogsService"]]},"relationshipsSections":[{"kind":"relationships","identifiers":["doc:\/\/DiscogsService\/documentation\/DiscogsService\/APIProtocol","doc:\/\/DiscogsService\/s8SendableP","doc:\/\/DiscogsService\/s16SendableMetatypeP"],"title":"Conforms To","type":"conformsTo"}],"kind":"symbol","primaryContentSections":[{"kind":"declarations","declarations":[{"platforms":["macOS"],"tokens":[{"text":"struct","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Client","kind":"identifier"}],"languages":["swift"]}]},{"kind":"content","content":[{"type":"heading","anchor":"overview","level":2,"text":"Overview"},{"type":"paragraph","inlineContent":[{"type":"text","text":"Some Discogs data is made available under the "},{"type":"reference","identifier":"https:\/\/creativecommons.org\/public-domain\/cc0\/","isActive":true},{"type":"text","text":" license, and some is restricted data, as defined in our "},{"type":"reference","identifier":"https:\/\/support.discogs.com\/hc\/en-us\/articles\/360009334593-API-Terms-of-Use","isActive":true},{"type":"text","text":"."}]},{"type":"paragraph","inlineContent":[{"type":"text","text":"Our monthly data dumps are available under the the "},{"overridingTitle":"CC0 No Rights Reserved","type":"reference","identifier":"https:\/\/creativecommons.org\/public-domain\/cc0\/","isActive":true,"overridingTitleInlineContent":[{"type":"text","text":"CC0 No Rights Reserved"}]},{"type":"text","text":" license."}]},{"type":"paragraph","inlineContent":[{"type":"text","text":"If you utilize the Discogs API, you are subject to the "},{"overridingTitle":"API Terms of Use","type":"reference","identifier":"https:\/\/support.discogs.com\/hc\/en-us\/articles\/360009334593-API-Terms-of-Use","isActive":true,"overridingTitleInlineContent":[{"type":"text","text":"API Terms of Use"}]},{"type":"text","text":". Please also ensure that any application you develop follows the Discogs "},{"overridingTitle":"Application Name and Description Policy","type":"reference","identifier":"https:\/\/support.discogs.com\/hc\/en-us\/articles\/360009334593-API-Terms-of-Use","isActive":true,"overridingTitleInlineContent":[{"type":"text","text":"Application Name and Description Policy"}]}]},{"type":"heading","anchor":"Quickstart","level":1,"text":"Quickstart"},{"type":"paragraph","inlineContent":[{"type":"text","text":"If you just want to see some results right now, issue this "},{"inlineContent":[{"type":"text","text":"curl"}],"type":"emphasis"},{"type":"text","text":" command:"}]},{"type":"codeListing","syntax":"bash","code":["curl https:\/\/api.discogs.com\/releases\/249504 --user-agent \"FooBarApp\/3.0\""]},{"type":"heading","anchor":"General-information","level":1,"text":"General information"},{"type":"paragraph","inlineContent":[{"type":"text","text":"General Information"}]},{"type":"paragraph","inlineContent":[{"inlineContent":[{"type":"text","text":"Your application must provide a User-Agent string that identifies itself"}],"type":"strong"},{"type":"text","text":" - preferably something that follows "},{"type":"reference","identifier":"https:\/\/datatracker.ietf.org\/doc\/html\/rfc1945#section-3.7","isActive":true},{"type":"text","text":". Some good examples include:"}]},{"type":"codeListing","syntax":null,"code":["AwesomeDiscogsBrowser\/0.1 +http:\/\/adb.example.com","LibraryMetadataEnhancer\/0.3 +http:\/\/example.com\/lime","MyDiscogsClient\/1.0 +http:\/\/mydiscogsclient.org"]},{"type":"paragraph","inlineContent":[{"type":"text","text":"Please don’t just copy one of those! Make it unique so we can let you know if your application starts to misbehave - the alternative is that we just silently block it, which will confuse and infuriate your users."}]},{"type":"paragraph","inlineContent":[{"type":"text","text":"Here are some bad examples that are unclear or obscure the nature of the application:"}]},{"type":"codeListing","syntax":null,"code":["curl\/7.9.8 (i686-pc-linux-gnu) libcurl 7.9.8 (OpenSSL 0.9.6b)","Mozilla\/5.0 (X11; Linux i686; rv:6.0.2) Gecko\/20100101 Firefox\/6.0.2","my app"]},{"type":"heading","anchor":"Authentication","level":1,"text":"Authentication"},{"type":"paragraph","inlineContent":[{"type":"text","text":"Most endpoints require authentication. The API supports multiple methods:"}]},{"type":"orderedList","items":[{"content":[{"type":"paragraph","inlineContent":[{"inlineContent":[{"type":"text","text":"Discogs Auth (Key & Secret):"}],"type":"strong"},{"text":" For read-only access to public data with a higher rate limit.","type":"text"}]}]},{"content":[{"type":"paragraph","inlineContent":[{"inlineContent":[{"type":"text","text":"Discogs Auth (Personal Access Token):"}],"type":"strong"},{"text":" For full access to your own user account data.","type":"text"}]}]},{"content":[{"type":"paragraph","inlineContent":[{"inlineContent":[{"type":"text","text":"OAuth 1.0a:"}],"type":"strong"},{"text":" For building third-party applications that act on behalf of other Discogs users.","type":"text"}]}]}]},{"type":"heading","anchor":"Rate-Limiting","level":1,"text":"Rate Limiting"},{"type":"paragraph","inlineContent":[{"inlineContent":[{"type":"text","text":"Requests are throttled by the server by source IP to 60 per minute for authenticated requests, and 25 per minute for unauthenticated requests, with some exceptions."}],"type":"strong"}]},{"type":"paragraph","inlineContent":[{"type":"text","text":"Your application should identify itself to our servers via a unique user agent string in order to achieve the maximum number of requests per minute."}]},{"type":"paragraph","inlineContent":[{"type":"text","text":"Our rate limiting tracks your requests using a moving average over a 60 second window. If no requests are made in 60 seconds, your window will reset."}]},{"type":"paragraph","inlineContent":[{"type":"text","text":"We attach the following headers to responses to help you track your rate limit use:"}]},{"type":"unorderedList","items":[{"content":[{"type":"paragraph","inlineContent":[{"code":"X-Discogs-Ratelimit","type":"codeVoice"},{"text":": The total number of requests that can make in a one minute window.","type":"text"}]}]},{"content":[{"type":"paragraph","inlineContent":[{"code":"X-Discogs-Ratelimit-Used","type":"codeVoice"},{"text":" : The number of requests made in an existing rate limit window.","type":"text"}]}]},{"content":[{"type":"paragraph","inlineContent":[{"code":"X-Discogs-Ratelimit-Remaining","type":"codeVoice"},{"text":": The number of remaining requests to make in an existing rate limit window.","type":"text"}]}]}]},{"type":"paragraph","inlineContent":[{"type":"text","text":"Your application should take our global limit into account and throttle its requests locally."}]},{"type":"paragraph","inlineContent":[{"type":"text","text":"In the future, we may update these rate limits at any time in order to provide service for all users."}]},{"type":"heading","anchor":"Pagination","level":1,"text":"Pagination"},{"type":"paragraph","inlineContent":[{"type":"text","text":"Some resources represent collections of objects and may be paginated. By default, 50 items per page are shown."}]},{"type":"paragraph","inlineContent":[{"type":"text","text":"To browse different pages, or change the number of items per page (up to 100), use the page and per_page query string parameters:"}]},{"type":"codeListing","syntax":null,"code":["GET https:\/\/api.discogs.com\/artists\/1\/releases?page=2&per_page=75"]},{"type":"paragraph","inlineContent":[{"type":"text","text":"Responses include a "},{"code":"Link","type":"codeVoice"},{"type":"text","text":" header:"}]},{"type":"codeListing","syntax":null,"code":["Link: <https:\/\/api.discogs.com\/artists\/1\/releases?page=3&per_page=75>; rel=next,","<https:\/\/api.discogs.com\/artists\/1\/releases?page=1&per_page=75>; rel=first,","<https:\/\/api.discogs.com\/artists\/1\/releases?page=30&per_page=75>; rel=last,","<https:\/\/api.discogs.com\/artists\/1\/releases?page=1&per_page=75>; rel=prev"]},{"type":"paragraph","inlineContent":[{"type":"text","text":"And a pagination object in the response body:"}]},{"type":"codeListing","syntax":"json","code":["{"," \"pagination\": { "," \"page\": 2, "," \"pages\": 30, "," \"items\": 2255, "," \"per_page\": 75, "," \"urls\":"," { "," \"first\": \"https:\/\/api.discogs.com\/artists\/1\/releases?page=1&per_page=75\","," \"prev\": \"https:\/\/api.discogs.com\/artists\/1\/releases?page=1&per_page=75\", "," \"next\": \"https:\/\/api.discogs.com\/artists\/1\/releases?page=3&per_page=75\", "," last\": \"https:\/\/api.discogs.com\/artists\/1\/releases?page=30&per_page=75\""," } "," }, "," \"releases\":"," [ ... ] "," }","}"]},{"type":"heading","anchor":"Versioning-and-Media-Types","level":1,"text":"Versioning and Media Types"},{"type":"paragraph","inlineContent":[{"type":"text","text":"Currently, the API only supports one version: "},{"code":"v2","type":"codeVoice"},{"type":"text","text":". However, you can specify a version in your requests to future-proof your application. By adding an "},{"code":"Accept","type":"codeVoice"},{"type":"text","text":" header with the version and media type, you can guarantee your requests will receive data from the correct version you develop your app on."}]},{"type":"paragraph","inlineContent":[{"text":"A standard ","type":"text"},{"type":"codeVoice","code":"Accept"},{"type":"text","text":" header may look like this:"}]},{"type":"codeListing","syntax":null,"code":["application\/vnd.discogs.v2.html+json"]},{"type":"paragraph","inlineContent":[{"type":"text","text":"If case of requesting information from an endpoint that may have text formatting in it, it is possible to choose which kind of formatting to be returned by changing that section of the "},{"type":"codeVoice","code":"Accept"},{"type":"text","text":" header. We currently support 3 types:"}]},{"type":"unorderedList","items":[{"content":[{"type":"paragraph","inlineContent":[{"type":"codeVoice","code":"application\/vnd.discogs.v2.html+json"}]}]},{"content":[{"type":"paragraph","inlineContent":[{"code":"application\/vnd.discogs.v2.plaintext+json","type":"codeVoice"}]}]},{"content":[{"type":"paragraph","inlineContent":[{"code":"application\/vnd.discogs.v2.discogs+json","type":"codeVoice"}]}]}]},{"type":"paragraph","inlineContent":[{"text":"If no ","type":"text"},{"type":"codeVoice","code":"Accept"},{"text":" header is supplied, or if the Accept header differs from one of the three previous options, we default to ","type":"text"},{"type":"codeVoice","code":"application\/vnd.discogs.v2.discogs+json"},{"type":"text","text":"."}]},{"type":"heading","anchor":"Videos","level":1,"text":"Videos"},{"inlineContent":[{"type":"text","text":"In case an application integrates "},{"type":"strong","inlineContent":[{"type":"text","text":"YouTube"}]},{"type":"text","text":" videos, then third party cookies may be used. Please refer to the "},{"type":"reference","identifier":"https:\/\/policies.google.com\/technologies\/cookies","isActive":true},{"type":"text","text":"."}],"type":"paragraph"},{"text":"FAQ","level":1,"type":"heading","anchor":"FAQ"},{"inlineContent":[{"inlineContent":[{"type":"text","text":"1) Why am I getting an empty response from the server?"}],"type":"strong"}],"type":"paragraph"},{"inlineContent":[{"type":"text","text":"This generally happens when no "},{"code":"User-Agent","type":"codeVoice"},{"type":"text","text":" header is added to the requests."}],"type":"paragraph"},{"inlineContent":[{"inlineContent":[{"type":"text","text":"2) How do I get updates about the API?"}],"type":"strong"}],"type":"paragraph"},{"inlineContent":[{"type":"text","text":"Subscribe to the "},{"type":"reference","identifier":"https:\/\/www.discogs.com\/forum\/thread\/521520689469733cfcfd2089","isActive":true},{"type":"text","text":". For larger, breaking changes, an email notice to all developers with a registered Discogs application will be sent."}],"type":"paragraph"},{"inlineContent":[{"inlineContent":[{"type":"text","text":"3) Where can I register a Discogs application?"}],"type":"strong"}],"type":"paragraph"},{"inlineContent":[{"type":"text","text":"A Discogs application can be registered on the "},{"type":"reference","identifier":"https:\/\/www.discogs.com\/settings\/developers","isActive":true},{"type":"text","text":"."}],"type":"paragraph"},{"inlineContent":[{"inlineContent":[{"type":"text","text":"4) If I have a question\/issue with the API, should I file a Support Request?"}],"type":"strong"}],"type":"paragraph"},{"inlineContent":[{"type":"text","text":"It’s generally best to start out with a forum post on the "},{"type":"reference","identifier":"https:\/\/www.discogs.com\/forum\/topic\/1082","isActive":true},{"type":"text","text":" since other developers may have had similar issues and they can point in the right direction. If the issue requires privacy, then a support request is the best way to go."}],"type":"paragraph"},{"inlineContent":[{"inlineContent":[{"type":"text","text":"5) I’m getting a 404 response when trying to fetch images; what gives?"}],"type":"strong"}],"type":"paragraph"},{"inlineContent":[{"type":"text","text":"This may seem obvious, but make sure the URL has not been changed. The URLs returned are signed URLs, so trying to change one part of the URL (e.g., "},{"inlineContent":[{"type":"text","text":"Release ID"}],"type":"emphasis"},{"type":"text","text":" number) will generally not work."}],"type":"paragraph"},{"inlineContent":[{"inlineContent":[{"type":"text","text":"6) What are the authentication requirements for requesting images?"}],"type":"strong"}],"type":"paragraph"},{"inlineContent":[{"type":"text","text":"Please see the "},{"type":"reference","isActive":true,"identifier":"https:\/\/www.discogs.com\/developers\/#page:images"},{"type":"text","text":"."}],"type":"paragraph"},{"type":"paragraph","inlineContent":[{"type":"strong","inlineContent":[{"text":"7) Why am I getting a particular HTTP response?","type":"text"}]}]},{"type":"paragraph","inlineContent":[{"type":"strong","inlineContent":[{"text":"200 OK","type":"text"}]}]},{"type":"paragraph","inlineContent":[{"type":"text","text":"The request was successful, and the requested data is provided in the response body."}]},{"type":"paragraph","inlineContent":[{"type":"strong","inlineContent":[{"text":"201 Continue","type":"text"}]}]},{"type":"paragraph","inlineContent":[{"text":"POST request is sent to a list of resources to create a new one. The ID of the newly-created resource will be provided in the body of the response.","type":"text"}]},{"inlineContent":[{"type":"strong","inlineContent":[{"text":"204 No Content","type":"text"}]}],"type":"paragraph"},{"type":"paragraph","inlineContent":[{"type":"text","text":"The request was successful, and the server has no additional information to convey, so the response body is empty."}]},{"type":"paragraph","inlineContent":[{"inlineContent":[{"type":"text","text":"401 Unauthorized"}],"type":"strong"}]},{"type":"paragraph","inlineContent":[{"text":"A resource that first requires ","type":"text"},{"identifier":"https:\/\/www.discogs.com\/developers\/#page:authentication","isActive":true,"type":"reference"},{"text":" is being accessed. See Authenticating with OAuth.","type":"text"}]},{"inlineContent":[{"type":"strong","inlineContent":[{"text":"403 Forbidden","type":"text"}]}],"type":"paragraph"},{"inlineContent":[{"text":"The access to a resource is not allowed, even if authenticated. Trying to modify another user’s profile, for example, will produce this error.","type":"text"}],"type":"paragraph"},{"type":"paragraph","inlineContent":[{"inlineContent":[{"text":"404 Not Found","type":"text"}],"type":"strong"}]},{"type":"paragraph","inlineContent":[{"type":"text","text":"The requested resource does not exist."}]},{"type":"paragraph","inlineContent":[{"inlineContent":[{"text":"405 Method Not Allowed","type":"text"}],"type":"strong"}]},{"type":"paragraph","inlineContent":[{"type":"text","text":"A HTTP verb is not supported by the resource. Trying to "},{"type":"codeVoice","code":"PUT"},{"type":"text","text":" to "},{"type":"codeVoice","code":"\/artists\/1"},{"type":"text","text":", for example, will fail because "},{"type":"codeVoice","code":"Artists"},{"type":"text","text":" are read-only."}]},{"type":"paragraph","inlineContent":[{"type":"strong","inlineContent":[{"text":"422 Unprocessable Entity","type":"text"}]}]},{"type":"paragraph","inlineContent":[{"type":"text","text":"Even though the request is well-formed, there is something semantically wrong with the body of the request. This can be due to malformed JSON, a missing parameter or the wrong type, or trying to perform an action that doesn not make any sense. Check the response body for specific information about what went wrong."}]},{"type":"paragraph","inlineContent":[{"type":"strong","inlineContent":[{"type":"text","text":"500 Internal Server Error"}]}]},{"type":"paragraph","inlineContent":[{"type":"text","text":"Something went wrong on the service while attempting to process the request. The message field of the response body will contain an error code that can be sent to Discogs Support (which will help on tracking down your specific issue)."}]}]}],"schemaVersion":{"minor":3,"major":0,"patch":0},"sections":[],"abstract":[{"type":"text","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":"emphasis","inlineContent":[{"type":"text","text":"Artists"}]},{"type":"text","text":", "},{"type":"emphasis","inlineContent":[{"type":"text","text":"Releases"}]},{"type":"text","text":", and "},{"type":"emphasis","inlineContent":[{"type":"text","text":"Labels"}]},{"type":"text","text":". Your application can also manage "},{"type":"emphasis","inlineContent":[{"type":"text","text":"User Collections"}]},{"type":"text","text":" and "},{"type":"emphasis","inlineContent":[{"type":"text","text":"Wantlists"}]},{"type":"text","text":", create "},{"type":"emphasis","inlineContent":[{"type":"text","text":"Marketplace"}]},{"type":"text","text":" listings, and more."}],"identifier":{"url":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/Client","interfaceLanguage":"swift"},"metadata":{"symbolKind":"struct","navigatorTitle":[{"kind":"identifier","text":"Client"}],"modules":[{"name":"DiscogsService"}],"roleHeading":"Structure","role":"symbol","fragments":[{"text":"struct","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Client","kind":"identifier"}],"externalID":"s:14DiscogsService6ClientV","title":"Client"},"references":{"doc://DiscogsService/documentation/DiscogsService/Client/getArtistReleases(_:)":{"role":"symbol","title":"getArtistReleases(_:)","kind":"symbol","type":"topic","abstract":[{"type":"text","text":"Get information about releases of an artist."}],"url":"\/documentation\/discogsservice\/client\/getartistreleases(_:)","identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/Client\/getArtistReleases(_:)","fragments":[{"text":"func","kind":"keyword"},{"text":" ","kind":"text"},{"text":"getArtistReleases","kind":"identifier"},{"text":"(","kind":"text"},{"preciseIdentifier":"s:14DiscogsService10OperationsO","text":"Operations","kind":"typeIdentifier"},{"text":".","kind":"text"},{"preciseIdentifier":"s:14DiscogsService10OperationsO17getArtistReleasesO","text":"getArtistReleases","kind":"typeIdentifier"},{"text":".","kind":"text"},{"preciseIdentifier":"s:14DiscogsService10OperationsO17getArtistReleasesO5InputV","text":"Input","kind":"typeIdentifier"},{"text":") ","kind":"text"},{"text":"async","kind":"keyword"},{"text":" ","kind":"text"},{"text":"throws","kind":"keyword"},{"text":" -> ","kind":"text"},{"preciseIdentifier":"s:14DiscogsService10OperationsO","text":"Operations","kind":"typeIdentifier"},{"text":".","kind":"text"},{"preciseIdentifier":"s:14DiscogsService10OperationsO17getArtistReleasesO","text":"getArtistReleases","kind":"typeIdentifier"},{"text":".","kind":"text"},{"preciseIdentifier":"s:14DiscogsService10OperationsO17getArtistReleasesO6OutputO","text":"Output","kind":"typeIdentifier"}]},"https://creativecommons.org/public-domain/cc0/":{"url":"https:\/\/creativecommons.org\/public-domain\/cc0\/","type":"link","identifier":"https:\/\/creativecommons.org\/public-domain\/cc0\/","title":"CC0 No Rights Reserved","titleInlineContent":[{"type":"text","text":"CC0 No Rights Reserved"}]},"https://www.discogs.com/developers/#page:images":{"url":"https:\/\/www.discogs.com\/developers\/#page:images","type":"link","identifier":"https:\/\/www.discogs.com\/developers\/#page:images","title":"Images documentation page","titleInlineContent":[{"type":"text","text":"Images documentation page"}]},"doc://DiscogsService/documentation/DiscogsService/Client/getReleaseStats(_:)":{"role":"symbol","title":"getReleaseStats(_:)","kind":"symbol","type":"topic","abstract":[{"type":"text","text":"Get information about statistics of release."}],"url":"\/documentation\/discogsservice\/client\/getreleasestats(_:)","identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/Client\/getReleaseStats(_:)","fragments":[{"text":"func","kind":"keyword"},{"text":" ","kind":"text"},{"text":"getReleaseStats","kind":"identifier"},{"text":"(","kind":"text"},{"preciseIdentifier":"s:14DiscogsService10OperationsO","text":"Operations","kind":"typeIdentifier"},{"text":".","kind":"text"},{"preciseIdentifier":"s:14DiscogsService10OperationsO15getReleaseStatsO","text":"getReleaseStats","kind":"typeIdentifier"},{"text":".","kind":"text"},{"preciseIdentifier":"s:14DiscogsService10OperationsO15getReleaseStatsO5InputV","text":"Input","kind":"typeIdentifier"},{"text":") ","kind":"text"},{"text":"async","kind":"keyword"},{"text":" ","kind":"text"},{"text":"throws","kind":"keyword"},{"text":" -> ","kind":"text"},{"preciseIdentifier":"s:14DiscogsService10OperationsO","text":"Operations","kind":"typeIdentifier"},{"text":".","kind":"text"},{"preciseIdentifier":"s:14DiscogsService10OperationsO15getReleaseStatsO","text":"getReleaseStats","kind":"typeIdentifier"},{"text":".","kind":"text"},{"preciseIdentifier":"s:14DiscogsService10OperationsO15getReleaseStatsO6OutputO","text":"Output","kind":"typeIdentifier"}]},"doc://DiscogsService/s16SendableMetatypeP":{"type":"unresolvable","identifier":"doc:\/\/DiscogsService\/s16SendableMetatypeP","title":"Swift.SendableMetatype"},"https://www.discogs.com/forum/thread/521520689469733cfcfd2089":{"url":"https:\/\/www.discogs.com\/forum\/thread\/521520689469733cfcfd2089","type":"link","identifier":"https:\/\/www.discogs.com\/forum\/thread\/521520689469733cfcfd2089","title":"API Announcements forum thread","titleInlineContent":[{"type":"text","text":"API Announcements forum thread"}]},"doc://DiscogsService/documentation/DiscogsService/Client/getRelease(_:)":{"role":"symbol","title":"getRelease(_:)","kind":"symbol","type":"topic","abstract":[{"type":"text","text":"Get information about a release"}],"url":"\/documentation\/discogsservice\/client\/getrelease(_:)","identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/Client\/getRelease(_:)","fragments":[{"text":"func","kind":"keyword"},{"text":" ","kind":"text"},{"text":"getRelease","kind":"identifier"},{"text":"(","kind":"text"},{"preciseIdentifier":"s:14DiscogsService10OperationsO","text":"Operations","kind":"typeIdentifier"},{"text":".","kind":"text"},{"preciseIdentifier":"s:14DiscogsService10OperationsO10getReleaseO","text":"getRelease","kind":"typeIdentifier"},{"text":".","kind":"text"},{"preciseIdentifier":"s:14DiscogsService10OperationsO10getReleaseO5InputV","text":"Input","kind":"typeIdentifier"},{"text":") ","kind":"text"},{"text":"async","kind":"keyword"},{"text":" ","kind":"text"},{"text":"throws","kind":"keyword"},{"text":" -> ","kind":"text"},{"preciseIdentifier":"s:14DiscogsService10OperationsO","text":"Operations","kind":"typeIdentifier"},{"text":".","kind":"text"},{"preciseIdentifier":"s:14DiscogsService10OperationsO10getReleaseO","text":"getRelease","kind":"typeIdentifier"},{"text":".","kind":"text"},{"preciseIdentifier":"s:14DiscogsService10OperationsO10getReleaseO6OutputO","text":"Output","kind":"typeIdentifier"}]},"doc://DiscogsService/s8SendableP":{"type":"unresolvable","identifier":"doc:\/\/DiscogsService\/s8SendableP","title":"Swift.Sendable"},"https://policies.google.com/technologies/cookies":{"url":"https:\/\/policies.google.com\/technologies\/cookies","type":"link","identifier":"https:\/\/policies.google.com\/technologies\/cookies","title":"YouTube and Google’s cookie policy","titleInlineContent":[{"type":"text","text":"YouTube and Google’s cookie policy"}]},"https://datatracker.ietf.org/doc/html/rfc1945#section-3.7":{"url":"https:\/\/datatracker.ietf.org\/doc\/html\/rfc1945#section-3.7","type":"link","identifier":"https:\/\/datatracker.ietf.org\/doc\/html\/rfc1945#section-3.7","title":"RFC 1945","titleInlineContent":[{"type":"text","text":"RFC 1945"}]},"doc://DiscogsService/documentation/DiscogsService/Client/getMaster(_:)":{"role":"symbol","title":"getMaster(_:)","kind":"symbol","type":"topic","abstract":[{"type":"text","text":"Get information about a master release."}],"url":"\/documentation\/discogsservice\/client\/getmaster(_:)","identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/Client\/getMaster(_:)","fragments":[{"text":"func","kind":"keyword"},{"text":" ","kind":"text"},{"text":"getMaster","kind":"identifier"},{"text":"(","kind":"text"},{"preciseIdentifier":"s:14DiscogsService10OperationsO","text":"Operations","kind":"typeIdentifier"},{"text":".","kind":"text"},{"preciseIdentifier":"s:14DiscogsService10OperationsO9getMasterO","text":"getMaster","kind":"typeIdentifier"},{"text":".","kind":"text"},{"preciseIdentifier":"s:14DiscogsService10OperationsO9getMasterO5InputV","text":"Input","kind":"typeIdentifier"},{"text":") ","kind":"text"},{"text":"async","kind":"keyword"},{"text":" ","kind":"text"},{"text":"throws","kind":"keyword"},{"text":" -> ","kind":"text"},{"preciseIdentifier":"s:14DiscogsService10OperationsO","text":"Operations","kind":"typeIdentifier"},{"text":".","kind":"text"},{"preciseIdentifier":"s:14DiscogsService10OperationsO9getMasterO","text":"getMaster","kind":"typeIdentifier"},{"text":".","kind":"text"},{"preciseIdentifier":"s:14DiscogsService10OperationsO9getMasterO6OutputO","text":"Output","kind":"typeIdentifier"}]},"doc://DiscogsService/documentation/DiscogsService/APIProtocol":{"role":"symbol","title":"APIProtocol","kind":"symbol","type":"topic","abstract":[{"type":"text","text":"A type that performs HTTP operations defined by the OpenAPI document."}],"navigatorTitle":[{"text":"APIProtocol","kind":"identifier"}],"url":"\/documentation\/discogsservice\/apiprotocol","identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/APIProtocol","fragments":[{"text":"protocol","kind":"keyword"},{"text":" ","kind":"text"},{"text":"APIProtocol","kind":"identifier"}]},"doc://DiscogsService/documentation/DiscogsService/Client/getService(_:)":{"role":"symbol","title":"getService(_:)","kind":"symbol","type":"topic","abstract":[{"type":"text","text":"Get information about the service."}],"url":"\/documentation\/discogsservice\/client\/getservice(_:)","identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/Client\/getService(_:)","fragments":[{"text":"func","kind":"keyword"},{"text":" ","kind":"text"},{"text":"getService","kind":"identifier"},{"text":"(","kind":"text"},{"preciseIdentifier":"s:14DiscogsService10OperationsO","text":"Operations","kind":"typeIdentifier"},{"text":".","kind":"text"},{"preciseIdentifier":"s:14DiscogsService10OperationsO03getB0O","text":"getService","kind":"typeIdentifier"},{"text":".","kind":"text"},{"preciseIdentifier":"s:14DiscogsService10OperationsO03getB0O5InputV","text":"Input","kind":"typeIdentifier"},{"text":") ","kind":"text"},{"text":"async","kind":"keyword"},{"text":" ","kind":"text"},{"text":"throws","kind":"keyword"},{"text":" -> ","kind":"text"},{"preciseIdentifier":"s:14DiscogsService10OperationsO","text":"Operations","kind":"typeIdentifier"},{"text":".","kind":"text"},{"preciseIdentifier":"s:14DiscogsService10OperationsO03getB0O","text":"getService","kind":"typeIdentifier"},{"text":".","kind":"text"},{"preciseIdentifier":"s:14DiscogsService10OperationsO03getB0O6OutputO","text":"Output","kind":"typeIdentifier"}]},"doc://DiscogsService/documentation/DiscogsService/Client/getArtist(_:)":{"role":"symbol","title":"getArtist(_:)","kind":"symbol","type":"topic","abstract":[{"type":"text","text":"Get information about an artist."}],"url":"\/documentation\/discogsservice\/client\/getartist(_:)","identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/Client\/getArtist(_:)","fragments":[{"text":"func","kind":"keyword"},{"text":" ","kind":"text"},{"text":"getArtist","kind":"identifier"},{"text":"(","kind":"text"},{"preciseIdentifier":"s:14DiscogsService10OperationsO","text":"Operations","kind":"typeIdentifier"},{"text":".","kind":"text"},{"preciseIdentifier":"s:14DiscogsService10OperationsO9getArtistO","text":"getArtist","kind":"typeIdentifier"},{"text":".","kind":"text"},{"preciseIdentifier":"s:14DiscogsService10OperationsO9getArtistO5InputV","text":"Input","kind":"typeIdentifier"},{"text":") ","kind":"text"},{"text":"async","kind":"keyword"},{"text":" ","kind":"text"},{"text":"throws","kind":"keyword"},{"text":" -> ","kind":"text"},{"preciseIdentifier":"s:14DiscogsService10OperationsO","text":"Operations","kind":"typeIdentifier"},{"text":".","kind":"text"},{"preciseIdentifier":"s:14DiscogsService10OperationsO9getArtistO","text":"getArtist","kind":"typeIdentifier"},{"text":".","kind":"text"},{"preciseIdentifier":"s:14DiscogsService10OperationsO9getArtistO6OutputO","text":"Output","kind":"typeIdentifier"}]},"https://www.discogs.com/settings/developers":{"url":"https:\/\/www.discogs.com\/settings\/developers","type":"link","identifier":"https:\/\/www.discogs.com\/settings\/developers","title":"Developer Settings","titleInlineContent":[{"type":"text","text":"Developer Settings"}]},"doc://DiscogsService/documentation/DiscogsService/Client/APIProtocol-Implementations":{"role":"collectionGroup","title":"APIProtocol Implementations","kind":"article","type":"topic","abstract":[],"url":"\/documentation\/discogsservice\/client\/apiprotocol-implementations","identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/Client\/APIProtocol-Implementations"},"doc://DiscogsService/documentation/DiscogsService/Client/getLabel(_:)":{"role":"symbol","title":"getLabel(_:)","kind":"symbol","type":"topic","abstract":[{"type":"text","text":"Get information about a label"}],"url":"\/documentation\/discogsservice\/client\/getlabel(_:)","identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/Client\/getLabel(_:)","fragments":[{"text":"func","kind":"keyword"},{"text":" ","kind":"text"},{"text":"getLabel","kind":"identifier"},{"text":"(","kind":"text"},{"preciseIdentifier":"s:14DiscogsService10OperationsO","text":"Operations","kind":"typeIdentifier"},{"text":".","kind":"text"},{"preciseIdentifier":"s:14DiscogsService10OperationsO8getLabelO","text":"getLabel","kind":"typeIdentifier"},{"text":".","kind":"text"},{"preciseIdentifier":"s:14DiscogsService10OperationsO8getLabelO5InputV","text":"Input","kind":"typeIdentifier"},{"text":") ","kind":"text"},{"text":"async","kind":"keyword"},{"text":" ","kind":"text"},{"text":"throws","kind":"keyword"},{"text":" -> ","kind":"text"},{"preciseIdentifier":"s:14DiscogsService10OperationsO","text":"Operations","kind":"typeIdentifier"},{"text":".","kind":"text"},{"preciseIdentifier":"s:14DiscogsService10OperationsO8getLabelO","text":"getLabel","kind":"typeIdentifier"},{"text":".","kind":"text"},{"preciseIdentifier":"s:14DiscogsService10OperationsO8getLabelO6OutputO","text":"Output","kind":"typeIdentifier"}]},"https://www.discogs.com/forum/topic/1082":{"url":"https:\/\/www.discogs.com\/forum\/topic\/1082","type":"link","identifier":"https:\/\/www.discogs.com\/forum\/topic\/1082","title":"API topic","titleInlineContent":[{"type":"text","text":"API topic"}]},"doc://DiscogsService/documentation/DiscogsService":{"title":"DiscogsService","role":"collection","abstract":[],"kind":"symbol","type":"topic","identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService","url":"\/documentation\/discogsservice"},"https://www.discogs.com/developers/#page:authentication":{"type":"link","identifier":"https:\/\/www.discogs.com\/developers\/#page:authentication","url":"https:\/\/www.discogs.com\/developers\/#page:authentication","titleInlineContent":[{"type":"text","text":"authentication"}],"title":"authentication"},"doc://DiscogsService/documentation/DiscogsService/Client/init(serverURL:configuration:transport:middlewares:)":{"role":"symbol","title":"init(serverURL:configuration:transport:middlewares:)","kind":"symbol","type":"topic","abstract":[{"text":"Creates a new client.","type":"text"}],"url":"\/documentation\/discogsservice\/client\/init(serverurl:configuration:transport:middlewares:)","identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/Client\/init(serverURL:configuration:transport:middlewares:)","fragments":[{"text":"init","kind":"identifier"},{"text":"(","kind":"text"},{"text":"serverURL","kind":"externalParam"},{"text":": ","kind":"text"},{"text":"URL","preciseIdentifier":"s:10Foundation3URLV","kind":"typeIdentifier"},{"text":", ","kind":"text"},{"kind":"externalParam","text":"configuration"},{"kind":"text","text":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:14OpenAPIRuntime13ConfigurationV","text":"Configuration"},{"text":", ","kind":"text"},{"text":"transport","kind":"externalParam"},{"text":": any ","kind":"text"},{"preciseIdentifier":"s:14OpenAPIRuntime15ClientTransportP","text":"ClientTransport","kind":"typeIdentifier"},{"text":", ","kind":"text"},{"text":"middlewares","kind":"externalParam"},{"text":": [any ","kind":"text"},{"preciseIdentifier":"s:14OpenAPIRuntime16ClientMiddlewareP","text":"ClientMiddleware","kind":"typeIdentifier"},{"text":"])","kind":"text"}]},"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/Client/getLabelReleases(_:)":{"url":"\/documentation\/discogsservice\/client\/getlabelreleases(_:)","type":"topic","title":"getLabelReleases(_:)","kind":"symbol","fragments":[{"text":"func","kind":"keyword"},{"kind":"text","text":" "},{"kind":"identifier","text":"getLabelReleases"},{"text":"(","kind":"text"},{"preciseIdentifier":"s:14DiscogsService10OperationsO","text":"Operations","kind":"typeIdentifier"},{"text":".","kind":"text"},{"preciseIdentifier":"s:14DiscogsService10OperationsO16getLabelReleasesO","text":"getLabelReleases","kind":"typeIdentifier"},{"text":".","kind":"text"},{"preciseIdentifier":"s:14DiscogsService10OperationsO16getLabelReleasesO5InputV","text":"Input","kind":"typeIdentifier"},{"text":") ","kind":"text"},{"text":"async","kind":"keyword"},{"text":" ","kind":"text"},{"text":"throws","kind":"keyword"},{"text":" -> ","kind":"text"},{"preciseIdentifier":"s:14DiscogsService10OperationsO","text":"Operations","kind":"typeIdentifier"},{"text":".","kind":"text"},{"preciseIdentifier":"s:14DiscogsService10OperationsO16getLabelReleasesO","text":"getLabelReleases","kind":"typeIdentifier"},{"text":".","kind":"text"},{"preciseIdentifier":"s:14DiscogsService10OperationsO16getLabelReleasesO6OutputO","text":"Output","kind":"typeIdentifier"}],"abstract":[{"type":"text","text":"Get information about the releases of a label."}],"role":"symbol","identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/Client\/getLabelReleases(_:)"},"doc://DiscogsService/documentation/DiscogsService/Client/searchDatabase(_:)":{"role":"symbol","title":"searchDatabase(_:)","kind":"symbol","type":"topic","abstract":[{"text":"Search any information from the database.","type":"text"}],"url":"\/documentation\/discogsservice\/client\/searchdatabase(_:)","identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/Client\/searchDatabase(_:)","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"searchDatabase"},{"kind":"text","text":"("},{"text":"Operations","preciseIdentifier":"s:14DiscogsService10OperationsO","kind":"typeIdentifier"},{"text":".","kind":"text"},{"text":"searchDatabase","preciseIdentifier":"s:14DiscogsService10OperationsO14searchDatabaseO","kind":"typeIdentifier"},{"text":".","kind":"text"},{"preciseIdentifier":"s:14DiscogsService10OperationsO14searchDatabaseO5InputV","text":"Input","kind":"typeIdentifier"},{"text":") ","kind":"text"},{"text":"async","kind":"keyword"},{"text":" ","kind":"text"},{"text":"throws","kind":"keyword"},{"text":" -> ","kind":"text"},{"preciseIdentifier":"s:14DiscogsService10OperationsO","text":"Operations","kind":"typeIdentifier"},{"kind":"text","text":"."},{"kind":"typeIdentifier","preciseIdentifier":"s:14DiscogsService10OperationsO14searchDatabaseO","text":"searchDatabase"},{"kind":"text","text":"."},{"kind":"typeIdentifier","preciseIdentifier":"s:14DiscogsService10OperationsO14searchDatabaseO6OutputO","text":"Output"}]},"doc://DiscogsService/documentation/DiscogsService/Client/getMasterVersions(_:)":{"url":"\/documentation\/discogsservice\/client\/getmasterversions(_:)","type":"topic","title":"getMasterVersions(_:)","kind":"symbol","fragments":[{"text":"func","kind":"keyword"},{"text":" ","kind":"text"},{"text":"getMasterVersions","kind":"identifier"},{"text":"(","kind":"text"},{"text":"Operations","preciseIdentifier":"s:14DiscogsService10OperationsO","kind":"typeIdentifier"},{"kind":"text","text":"."},{"text":"getMasterVersions","preciseIdentifier":"s:14DiscogsService10OperationsO17getMasterVersionsO","kind":"typeIdentifier"},{"kind":"text","text":"."},{"text":"Input","preciseIdentifier":"s:14DiscogsService10OperationsO17getMasterVersionsO5InputV","kind":"typeIdentifier"},{"kind":"text","text":") "},{"text":"async","kind":"keyword"},{"kind":"text","text":" "},{"kind":"keyword","text":"throws"},{"kind":"text","text":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:14DiscogsService10OperationsO","text":"Operations"},{"kind":"text","text":"."},{"kind":"typeIdentifier","preciseIdentifier":"s:14DiscogsService10OperationsO17getMasterVersionsO","text":"getMasterVersions"},{"kind":"text","text":"."},{"kind":"typeIdentifier","preciseIdentifier":"s:14DiscogsService10OperationsO17getMasterVersionsO6OutputO","text":"Output"}],"abstract":[{"type":"text","text":"Get information about the versions of a master release."}],"role":"symbol","identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/Client\/getMasterVersions(_:)"},"https://support.discogs.com/hc/en-us/articles/360009334593-API-Terms-of-Use":{"type":"link","identifier":"https:\/\/support.discogs.com\/hc\/en-us\/articles\/360009334593-API-Terms-of-Use","url":"https:\/\/support.discogs.com\/hc\/en-us\/articles\/360009334593-API-Terms-of-Use","titleInlineContent":[{"text":"API Terms of Use","type":"text"}],"title":"API Terms of Use"},"doc://DiscogsService/documentation/DiscogsService/Client/getReleaseRatingByUser(_:)":{"url":"\/documentation\/discogsservice\/client\/getreleaseratingbyuser(_:)","type":"topic","title":"getReleaseRatingByUser(_:)","kind":"symbol","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"getReleaseRatingByUser"},{"kind":"text","text":"("},{"kind":"typeIdentifier","preciseIdentifier":"s:14DiscogsService10OperationsO","text":"Operations"},{"kind":"text","text":"."},{"kind":"typeIdentifier","preciseIdentifier":"s:14DiscogsService10OperationsO22getReleaseRatingByUserO","text":"getReleaseRatingByUser"},{"kind":"text","text":"."},{"kind":"typeIdentifier","preciseIdentifier":"s:14DiscogsService10OperationsO22getReleaseRatingByUserO5InputV","text":"Input"},{"kind":"text","text":") "},{"kind":"keyword","text":"async"},{"kind":"text","text":" "},{"kind":"keyword","text":"throws"},{"kind":"text","text":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:14DiscogsService10OperationsO","text":"Operations"},{"kind":"text","text":"."},{"kind":"typeIdentifier","preciseIdentifier":"s:14DiscogsService10OperationsO22getReleaseRatingByUserO","text":"getReleaseRatingByUser"},{"kind":"text","text":"."},{"kind":"typeIdentifier","preciseIdentifier":"s:14DiscogsService10OperationsO22getReleaseRatingByUserO6OutputO","text":"Output"}],"abstract":[{"text":"Get information about a rating of release by a user.","type":"text"}],"role":"symbol","identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/Client\/getReleaseRatingByUser(_:)"},"doc://DiscogsService/documentation/DiscogsService/Client/getReleaseRating(_:)":{"url":"\/documentation\/discogsservice\/client\/getreleaserating(_:)","type":"topic","title":"getReleaseRating(_:)","kind":"symbol","fragments":[{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"getReleaseRating"},{"kind":"text","text":"("},{"kind":"typeIdentifier","preciseIdentifier":"s:14DiscogsService10OperationsO","text":"Operations"},{"kind":"text","text":"."},{"kind":"typeIdentifier","preciseIdentifier":"s:14DiscogsService10OperationsO16getReleaseRatingO","text":"getReleaseRating"},{"kind":"text","text":"."},{"kind":"typeIdentifier","preciseIdentifier":"s:14DiscogsService10OperationsO16getReleaseRatingO5InputV","text":"Input"},{"kind":"text","text":") "},{"kind":"keyword","text":"async"},{"kind":"text","text":" "},{"kind":"keyword","text":"throws"},{"kind":"text","text":" -> "},{"kind":"typeIdentifier","preciseIdentifier":"s:14DiscogsService10OperationsO","text":"Operations"},{"kind":"text","text":"."},{"kind":"typeIdentifier","preciseIdentifier":"s:14DiscogsService10OperationsO16getReleaseRatingO","text":"getReleaseRating"},{"kind":"text","text":"."},{"kind":"typeIdentifier","preciseIdentifier":"s:14DiscogsService10OperationsO16getReleaseRatingO6OutputO","text":"Output"}],"abstract":[{"text":"Get information about a rating of release.","type":"text"}],"role":"symbol","identifier":"doc:\/\/DiscogsService\/documentation\/DiscogsService\/Client\/getReleaseRating(_:)"}}} |