andaryjo / trias-client Goto Github PK
View Code? Open in Web Editor NEWLean Node.js client for public transport TRIAS APIs
Home Page: https://npmjs.com/package/trias-client
License: ISC License
Lean Node.js client for public transport TRIAS APIs
Home Page: https://npmjs.com/package/trias-client
License: ISC License
The npm module request
has been deprecated for some time now. I'd therefore like to switch to Axios
, which is a more modern and promise-based alternative.
The migration becomes urgent as I'm having some issues adding the VVO provider to my own public transport application Abfahrt. Using this client, I'm not able to perform successful requests to the VVO TRIAS API (returning error 404).
This seems to be a problem with request
in general, because it works with Postman and with axios
when using the exact same request headers and payload. I did some low-level debugging on my own platform before I realised that this is a problem with this client: https://gitlab.com/andary/abfahrt-core/-/issues/50
I therefore will need to introduce axios
sooner than planned.
Introduce TRIAS trips for release 1.0.
Currently the client automatically set the header Content-Type
to application/xml
. But for example the VVO provider needs the header set to text/xml
.
The client should therefore not overwrite the header when already set by the consumer.
Add detailed documentation on the methods, their options and the results.
Hi,
I'm currently working on a similar library, but for python. Therefore I appreciate your collection of providers and I'm glad I found it. The only other list I am aware of is this (german) one.
As I want to test my python client on different APIs I would be happy to submit a MR to extend or update the list by updating information or links, adding new providers or add additional information.
However, I also think that such a list of providers should in the best case be available independent of a software solution in the long term. Some places to put it could be either the VDV GitHub where the specification of TRIAs is also located or a Wiki like TransitWiki What are your thoughts on that?
For now if I find anything worth updating in the providers.md I would submit a Pull Request, if that works for you.
Regards
Max
The module testing currently tests the functionality of the module for multile TRIAS providers to ensure it's comaptibility. However, I do not think that this is a good testing approach as it depends on the availability and correct implementation of external providers.
Instead, testing should be done on a mocked implementation of a TRIAS provider (maybe by generating random XML responses based on the TRIAS specificiation). It will be hard to then test not only the technical but also the business aspect of the data (does the data even make sense & what weird constellations can appear?).
Maybe testing can depend on a combination of mocked and actual TRIAS data. I just think that the unavailability of a TRIAS provider should not result in failing tests.
TRIAS has so called situations - which are essentially ticker news - for departures and trips. In both cases, these situations are not directly linked to one specific departure or trip, but apply to the whole service response:
<TripResponse>
<TripResponseContext>
<Situations></Situations>
</TripResponseContext>
<TripResult></TripResult>
<TripResult></TripResult>
</TripResponse>
This is actually a weakness of TRIAS and not correctly implemented by many TRIAS providers, as they were (probably) trying to map their item-specific information into this field, which is now missing some context. E.g. the situation "Ersatzfahrt" would only apply to one specific item, but is here applied to all the items.
trias-client
already supports situations for departures and I'm now planning to add this ticker information for journeys as well.
(as requested by Abfahrt Core in https://gitlab.com/andary/abfahrt-core/-/issues/80)
Some providers require authorization using http headers.
Detected in Abfahrt Core: https://gitlab.com/andary/abfahrt-core/-/issues/90
The current FPTF version does not satisfy all the requirements needed to be able to fully adapt it for this client.
Let's propose some enhancements! Especially:
You can see all the changes I had to make here: https://github.com/andaryjo/trias-client/blob/c605157d535231a550c021b85df70eb216f668f8/src/types/fptf.ts
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.