4623c13c24
This PR contains the work done to improve the `OpenAPI` specification documentation that describes the `Amiibo API` online service as well as updates to the `AmiiboLiveClient` that uses the code generated out of the mentioned document. In addition, some test cases have been updated to reflect the latest data in the service. Reviewed-on: #19 Co-authored-by: Javier Cicchelli <javier@rock-n-code.com> Co-committed-by: Javier Cicchelli <javier@rock-n-code.com>
1 line
17 KiB
JSON
1 line
17 KiB
JSON
{"hierarchy":{"paths":[[]]},"identifier":{"url":"doc:\/\/AmiiboService\/documentation\/AmiiboService","interfaceLanguage":"swift"},"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"metadata":{"title":"AmiiboService","externalID":"AmiiboService","modules":[{"name":"AmiiboService"}],"roleHeading":"Framework","symbolKind":"module","role":"collection"},"variants":[{"paths":["\/documentation\/amiiboservice"],"traits":[{"interfaceLanguage":"swift"}]}],"abstract":[{"type":"text","text":"A library that provides everything the developer needs to interact with the "},{"type":"strong","inlineContent":[{"text":"Amiibo API","type":"text"}]},{"text":" backend service.","type":"text"}],"topicSections":[{"identifiers":["doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboService"],"anchor":"Service","title":"Service"},{"title":"Clients","identifiers":["doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboClient","doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboLiveClient"],"anchor":"Clients"},{"title":"Models","identifiers":["doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Platform-swift.struct","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct","doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage","doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboSeries","doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboType","doc:\/\/AmiiboService\/documentation\/AmiiboService\/GameCharacter","doc:\/\/AmiiboService\/documentation\/AmiiboService\/GameSeries"],"anchor":"Models"},{"title":"Filters","identifiers":["doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter","doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboSeriesFilter","doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboTypeFilter","doc:\/\/AmiiboService\/documentation\/AmiiboService\/GameCharacterFilter","doc:\/\/AmiiboService\/documentation\/AmiiboService\/GameSeriesFilter"],"anchor":"Filters"},{"title":"Errors","identifiers":["doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboServiceError"],"anchor":"Errors"}],"kind":"symbol","primaryContentSections":[{"content":[{"type":"heading","anchor":"Overview","level":2,"text":"Overview"},{"inlineContent":[{"type":"text","text":"The "},{"type":"codeVoice","code":"amiibo-service"},{"type":"text","text":" library is a package that allows the developer to interact with the "},{"isActive":true,"type":"reference","identifier":"https:\/\/www.amiiboapi.com"},{"type":"text","text":" backend service seamlessly, by not only providing the "},{"type":"emphasis","inlineContent":[{"type":"text","text":"service"}]},{"type":"text","text":" type but also any possible "},{"type":"emphasis","inlineContent":[{"type":"text","text":"models"}]},{"type":"text","text":", "},{"type":"emphasis","inlineContent":[{"text":"filters","type":"text"}]},{"type":"text","text":", "},{"type":"emphasis","inlineContent":[{"text":"errors","type":"text"}]},{"type":"text","text":" and "},{"type":"emphasis","inlineContent":[{"type":"text","text":"interfaces"}]},{"type":"text","text":" types that might be needed during implementation."}],"type":"paragraph"},{"text":"Design","level":2,"type":"heading","anchor":"Design"},{"inlineContent":[{"type":"text","text":"Although it could have been possible to generate a one-to-one RESTful client based on the Open API specification document that describe the available endpoints of the backend service, it was decided to design a "},{"type":"codeVoice","code":"AmiiboService"},{"type":"text","text":" service type that removes the complexities of the API design imposed by the backend service, and provides the developer with a simple interface, and a seamless experience."}],"type":"paragraph"},{"type":"heading","anchor":"Installation","level":2,"text":"Installation"},{"type":"paragraph","inlineContent":[{"text":"To use the ","type":"text"},{"code":"AmiiboService","type":"codeVoice"},{"text":" library with your package, then add it as a dependency in the ","type":"text"},{"type":"codeVoice","code":"Package.swift"},{"text":" file:","type":"text"}]},{"type":"codeListing","syntax":"swift","code":["let package = Package("," \/\/ name, platforms, products, etc."," dependencies: ["," .package(url: \"https:\/\/github.com\/rock-n-code\/amiibo-service\", from: \"1.2.0\"),"," \/\/ other dependencies"," ],"," targets: ["," .target("," name: \"SomeTarget\", "," dependencies: ["," .product(name: \"AmiiboService\", package: \"amiibo-service\"),"," ]"," )"," \/\/ other targets"," ]",")"]},{"type":"paragraph","inlineContent":[{"text":"It is also possible to use the ","type":"text"},{"type":"codeVoice","code":"AmiiboService"},{"text":" library with your app in Xcode, then add it as a dependency in your Xcode project.","type":"text"}]},{"type":"aside","content":[{"type":"paragraph","inlineContent":[{"text":"Swift 5.10 or higher is required in order to compile this library.","type":"text"}]}],"name":"Important","style":"important"},{"type":"heading","level":2,"text":"Tasks","anchor":"Tasks"},{"inlineContent":[{"text":"This library offers a set of ready-to-use tasks that simplify the interaction with the library, which the developer can use from any ","type":"text"},{"type":"codeVoice","code":"Terminal"},{"text":" application.","type":"text"}],"type":"paragraph"},{"name":"Tip","type":"aside","content":[{"inlineContent":[{"type":"text","text":"To show the available list of tasks, plus display some explanations about each and every one of them; please enter the following command:"}],"type":"paragraph"}],"style":"tip"},{"code":["$ make"],"type":"codeListing","syntax":"bash"}],"kind":"content"}],"references":{"doc://AmiiboService/documentation/AmiiboService/GameCharacterFilter":{"kind":"symbol","fragments":[{"text":"struct","kind":"keyword"},{"text":" ","kind":"text"},{"text":"GameCharacterFilter","kind":"identifier"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/GameCharacterFilter","abstract":[{"text":"A type that contains values to fine-tune a response when requesting game characters.","type":"text"}],"type":"topic","navigatorTitle":[{"kind":"identifier","text":"GameCharacterFilter"}],"title":"GameCharacterFilter","url":"\/documentation\/amiiboservice\/gamecharacterfilter","role":"symbol"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Game":{"kind":"symbol","fragments":[{"text":"struct","kind":"keyword"},{"text":" ","kind":"text"},{"kind":"identifier","text":"Game"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Game","abstract":[{"text":"A model that represents a game related to an amiibo item.","type":"text"}],"type":"topic","navigatorTitle":[{"text":"Game","kind":"identifier"}],"title":"Amiibo.Game","url":"\/documentation\/amiiboservice\/amiibo\/game","role":"symbol"},"doc://AmiiboService/documentation/AmiiboService/GameSeries":{"abstract":[{"type":"text","text":"A model that represents a game series."}],"title":"GameSeries","url":"\/documentation\/amiiboservice\/gameseries","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/GameSeries","fragments":[{"text":"struct","kind":"keyword"},{"text":" ","kind":"text"},{"text":"GameSeries","kind":"identifier"}],"kind":"symbol","navigatorTitle":[{"text":"GameSeries","kind":"identifier"}],"role":"symbol","type":"topic"},"doc://AmiiboService/documentation/AmiiboService/AmiiboFilter":{"kind":"symbol","fragments":[{"text":"struct","kind":"keyword"},{"text":" ","kind":"text"},{"text":"AmiiboFilter","kind":"identifier"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboFilter","abstract":[{"text":"A type that contains values to fine-tune a response when requesting amiibo items.","type":"text"}],"type":"topic","navigatorTitle":[{"kind":"identifier","text":"AmiiboFilter"}],"title":"AmiiboFilter","url":"\/documentation\/amiiboservice\/amiibofilter","role":"symbol"},"https://www.amiiboapi.com":{"identifier":"https:\/\/www.amiiboapi.com","url":"https:\/\/www.amiiboapi.com","type":"link","title":"Amiibo API","titleInlineContent":[{"type":"text","text":"Amiibo API"}]},"doc://AmiiboService/documentation/AmiiboService/AmiiboLiveClient":{"type":"topic","url":"\/documentation\/amiiboservice\/amiiboliveclient","role":"symbol","fragments":[{"text":"struct","kind":"keyword"},{"kind":"text","text":" "},{"kind":"identifier","text":"AmiiboLiveClient"}],"navigatorTitle":[{"kind":"identifier","text":"AmiiboLiveClient"}],"kind":"symbol","abstract":[{"type":"text","text":"A type that implements a live client to the online service."}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboLiveClient","title":"AmiiboLiveClient"},"doc://AmiiboService/documentation/AmiiboService/AmiiboSeries":{"type":"topic","url":"\/documentation\/amiiboservice\/amiiboseries","role":"symbol","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"AmiiboSeries"}],"navigatorTitle":[{"text":"AmiiboSeries","kind":"identifier"}],"kind":"symbol","abstract":[{"type":"text","text":"A model that represents an amiibo series."}],"title":"AmiiboSeries","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboSeries"},"doc://AmiiboService/documentation/AmiiboService":{"type":"topic","url":"\/documentation\/amiiboservice","abstract":[{"type":"text","text":"A library that provides everything the developer needs to interact with the "},{"inlineContent":[{"type":"text","text":"Amiibo API"}],"type":"strong"},{"text":" backend service.","type":"text"}],"kind":"symbol","role":"collection","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService","title":"AmiiboService"},"doc://AmiiboService/documentation/AmiiboService/AmiiboServiceError":{"url":"\/documentation\/amiiboservice\/amiiboserviceerror","fragments":[{"text":"enum","kind":"keyword"},{"text":" ","kind":"text"},{"text":"AmiiboServiceError","kind":"identifier"}],"navigatorTitle":[{"text":"AmiiboServiceError","kind":"identifier"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboServiceError","kind":"symbol","type":"topic","abstract":[{"text":"A representation of all the possible errors that the ","type":"text"},{"type":"reference","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboService","isActive":true},{"text":" service could throw.","type":"text"}],"role":"symbol","title":"AmiiboServiceError"},"doc://AmiiboService/documentation/AmiiboService/GameSeriesFilter":{"title":"GameSeriesFilter","abstract":[{"type":"text","text":"A type that contains values to fine-tune a response when requesting game series."}],"url":"\/documentation\/amiiboservice\/gameseriesfilter","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/GameSeriesFilter","fragments":[{"text":"struct","kind":"keyword"},{"text":" ","kind":"text"},{"text":"GameSeriesFilter","kind":"identifier"}],"kind":"symbol","navigatorTitle":[{"text":"GameSeriesFilter","kind":"identifier"}],"role":"symbol","type":"topic"},"doc://AmiiboService/documentation/AmiiboService/AmiiboSeriesFilter":{"abstract":[{"type":"text","text":"A type that contains values to fine-tune a response when requesting amiibo series."}],"fragments":[{"kind":"keyword","text":"struct"},{"text":" ","kind":"text"},{"text":"AmiiboSeriesFilter","kind":"identifier"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboSeriesFilter","url":"\/documentation\/amiiboservice\/amiiboseriesfilter","role":"symbol","kind":"symbol","navigatorTitle":[{"kind":"identifier","text":"AmiiboSeriesFilter"}],"title":"AmiiboSeriesFilter","type":"topic"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Platform-swift.struct":{"kind":"symbol","fragments":[{"text":"struct","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Platform","kind":"identifier"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Platform-swift.struct","abstract":[{"type":"text","text":"A model that represents a collection of "},{"type":"codeVoice","code":"WiiU"},{"type":"text","text":", "},{"code":"3DS","type":"codeVoice"},{"type":"text","text":", and "},{"code":"Switch","type":"codeVoice"},{"type":"text","text":" games related to an amiibo item."}],"type":"topic","navigatorTitle":[{"text":"Platform","kind":"identifier"}],"title":"Amiibo.Platform","url":"\/documentation\/amiiboservice\/amiibo\/platform-swift.struct","role":"symbol"},"doc://AmiiboService/documentation/AmiiboService/AmiiboService":{"url":"\/documentation\/amiiboservice\/amiiboservice","fragments":[{"text":"struct","kind":"keyword"},{"kind":"text","text":" "},{"kind":"identifier","text":"AmiiboService"}],"navigatorTitle":[{"text":"AmiiboService","kind":"identifier"}],"kind":"symbol","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboService","type":"topic","abstract":[{"type":"text","text":"A type that implements the service that uses a client to make calls."}],"role":"symbol","title":"AmiiboService"},"doc://AmiiboService/documentation/AmiiboService/AmiiboType":{"abstract":[{"text":"A model that represents an amiibo type.","type":"text"}],"fragments":[{"kind":"keyword","text":"struct"},{"text":" ","kind":"text"},{"text":"AmiiboType","kind":"identifier"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboType","url":"\/documentation\/amiiboservice\/amiibotype","role":"symbol","kind":"symbol","navigatorTitle":[{"kind":"identifier","text":"AmiiboType"}],"title":"AmiiboType","type":"topic"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Release-swift.struct":{"kind":"symbol","fragments":[{"text":"struct","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Release","kind":"identifier"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Release-swift.struct","abstract":[{"text":"A model that represents a collection of release dates related to an amiibo item.","type":"text"}],"type":"topic","navigatorTitle":[{"text":"Release","kind":"identifier"}],"title":"Amiibo.Release","url":"\/documentation\/amiiboservice\/amiibo\/release-swift.struct","role":"symbol"},"doc://AmiiboService/documentation/AmiiboService/Amiibo/Usage":{"abstract":[{"type":"text","text":"A model that represents the usage of an amiibo item within a certain game."}],"type":"topic","url":"\/documentation\/amiiboservice\/amiibo\/usage","navigatorTitle":[{"text":"Usage","kind":"identifier"}],"role":"symbol","kind":"symbol","fragments":[{"text":"struct","kind":"keyword"},{"text":" ","kind":"text"},{"text":"Usage","kind":"identifier"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo\/Usage","title":"Amiibo.Usage"},"doc://AmiiboService/documentation/AmiiboService/GameCharacter":{"kind":"symbol","fragments":[{"text":"struct","kind":"keyword"},{"text":" ","kind":"text"},{"text":"GameCharacter","kind":"identifier"}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/GameCharacter","abstract":[{"text":"A model that represents a game character.","type":"text"}],"type":"topic","navigatorTitle":[{"text":"GameCharacter","kind":"identifier"}],"title":"GameCharacter","url":"\/documentation\/amiiboservice\/gamecharacter","role":"symbol"},"doc://AmiiboService/documentation/AmiiboService/AmiiboClient":{"type":"topic","url":"\/documentation\/amiiboservice\/amiiboclient","role":"symbol","fragments":[{"text":"protocol","kind":"keyword"},{"text":" ","kind":"text"},{"text":"AmiiboClient","kind":"identifier"}],"navigatorTitle":[{"text":"AmiiboClient","kind":"identifier"}],"kind":"symbol","abstract":[{"type":"text","text":"A protocol that defines API clients containing all available endpoints to interact with."}],"identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboClient","title":"AmiiboClient"},"doc://AmiiboService/documentation/AmiiboService/Amiibo":{"abstract":[{"text":"A model that represents an amiibo item.","type":"text"}],"title":"Amiibo","url":"\/documentation\/amiiboservice\/amiibo","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/Amiibo","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"Amiibo"}],"kind":"symbol","navigatorTitle":[{"kind":"identifier","text":"Amiibo"}],"role":"symbol","type":"topic"},"doc://AmiiboService/documentation/AmiiboService/AmiiboTypeFilter":{"abstract":[{"type":"text","text":"A type that contains values to fine-tune a response when requesting amiibo types."}],"title":"AmiiboTypeFilter","url":"\/documentation\/amiiboservice\/amiibotypefilter","identifier":"doc:\/\/AmiiboService\/documentation\/AmiiboService\/AmiiboTypeFilter","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"AmiiboTypeFilter"}],"kind":"symbol","navigatorTitle":[{"kind":"identifier","text":"AmiiboTypeFilter"}],"role":"symbol","type":"topic"}}} |