tawmy / xivapi-cs Goto Github PK
View Code? Open in Web Editor NEW.NET 6.0 XIVAPI wrapper
.NET 6.0 XIVAPI wrapper
The repo needs at least a short readme to describe what it is (simple xivapi wrapper, not a lodestone parser), and basic usage examples.
The consensus in .NET is to have names of methods dealing with async
hronous operations suffixed with Async
. One such example is Stream.ReadAsync
from System.IO
. Doing so improves readability and provides crucial information at a glance.
There are 135 occurrences of this issue in the repository.
See all occurrences on DeepSource โ deepsource.io/gh/Leyla-Labs/xivapi-cs/issue/CS-R1073/occurrences/
The wrapper is using models the JsonSerializer deserializes the API responses into. This would work fine if the API had consistent variable types, which it does not. For example, a Free Company weekly rank is an integer if it exists, and a string "--" if it does not.
Previously dynamic types were used to work around this issue, but they are not pleasant to use for the end user. Separate DTOs and ViewModels would help with this.
A simple separation should be enough, where the Serializer deserializes into the DTO, which is then converted into a ViewModel before it is returned. The ViewModel classes will have a constructor accepting a DTO, whose members then get converted into the ViewModels'.
Various collections are now an empty list by default instead of null since switching to ViewModels. Certain tests still check whether the value is null even though it can never be null. These need to be replaced by IsNotEmpty asserts.
A lot of test logic can probably be moved into methods that are called ten times instead of the same code being copied ten times.
New NA data center will be added in Patch 6.28:
This data center has four new worlds:
It's been a while since Endwalker came out. New jobs and possibly other changes need to be implemented into this repo. Until then it will not be usable.
A few helper methods have been added, and while they're public, they need to be found magically. Having their return values exposed through properties in ViewModels would make using them a lot more pleasant.
As of right now, the unit tests usually test for ten different characters. These characters are either still active, or if they're inactive, have still played the game for some time.
To make sure all values marked as non-nullable can actually never be empty, two more characters should be created in-game and added to the unit tests.
Once these two are added, the unit tests should fully cover all nullable properties on characters. They need to be added to all character related tests:
Closes #1
The API has another property with varying return type. Free Company ranks are an integer if they exist, and a string "--" when they don't. This issue is to be resolved with #2, I'm just writing this down separately so I don't forget.
As a convenience feature, it would be great to have a method that takes a job and returns an array of melding priorities, as per Balance Discord.
AC:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.