Good day,
I’ve been working on a C# REST API client for FXML3. I’ve run into several concerning issues that I would like the team’s feedback on.
-
Pricing
- While I greatly appreciate the free tier, it’s difficult to properly codify all the endpoints due to some not being available for this tier.
- I understand having a request limit on a monthly basis, however, the queries per minute restriction makes integration testing nigh impossible. I can get around this by saving JSON of responses, but that hides any issues that may arise from the API changing.
- The pricing does seem extreme for open source development - could API keys be provided for open source developers via some sort of application?
-
API Design
- Inconsistent naming conventions - Look at the “AirlineFlightSchedules” API, for instance, there are 3 different types of naming conventions in just the input parameters:
- Inconsistent Responses - For most responses, I have to wrap the data that I care about in another class in order to actually access it due to the deserialization of the responses. This leads to code such as
response.Results.Flights
rather than justresponse.Flights
. I can deal with this in the client’s code, but it seems unnecessary. Also, certain endpoints don’t need this, such as theZipCodeInfo
, which is what I expected across the board. - Filters - This one I’m torn on. I understand that being able to apply a filter such as
airline: {airline code}
is nice. However, becausega
is also available for endpoints such asAirportBoards
, it makes it very difficult to provide proper typing information. Additionally, theFlightCancellationStatistics
filters are interdependent, whereas theAirportBoards
ones are not. This also feels inconsistent, but possibly is necessary.
- Inconsistent naming conventions - Look at the “AirlineFlightSchedules” API, for instance, there are 3 different types of naming conventions in just the input parameters:
Thank you for your time and consideration while reading this. I look forward to these points being addressed/answered.