How to get ready for the new data types and 2019 API

I’m pausing the Solid on SAFE work having shown it works pretty well on mock. I’ve hit blocking issues with alpha 2 that will go away with Fleming, and don’t seem worth trying to solve as they are time consuming to investigate.

I’d like to be ready to refactor for the new APIs ASAP so the Solid work can jump straight onto pre-Fleming tests.

The first thing that would help would be to see what changes are coming at the SAFE App NodeJS level, so just documentation. I guess normally that would come last, but if this can come a little earlier it would help and I could start thinking about what might be needed in SafenetworkJS.

2 Likes

Our aim ATM is for the new ‘dev facing’ API to be a much friendlier / simpler one. Advanced functionality should still exist, but hopefully we can cover enough with the basic API that there wont be a need to go deeper very often.

Our initial work on this is the API we’re using for the CLI. Built first in rust, you can see what’s expected re: params etc there. And here we have a couple of ‘layers’, one doing the abstract data stuff, eg: putting files on to the network (and producing FilesMaps etc.). And these APIs use the lower (though still available), safe client libs wrapper APIs which offer functionality like [“put sequenced append only data”](https://github.com/maidsafe/safe-cli/blob/master/src/api/safe_client_libs.rs#L250 (which is still a wrapper on the core SCL functionality).

So most of this functionality should be what we’re looking to expose. The bredth of that, and how soon we expose those lower functions (vs building out the missing functionality for other data types etc), remains to be seen.

And then on top of that we have to build the FFI to all of this.


So what can you get your hands dirty with right now ? If you made a nodejs wrapper functions for CLI calls, the data you require for these function calls should be very similar to the final APIs eg.

I won’t say it’s fixed yet, but I’d be surprised if a call to put a file or ID changed much from our current implementation… (Though feedback on that if it needs changing from a dev/user perspective is invaluable!)

Hope that helps @happybeing!

5 Likes

Very helpful Josh, thanks for taking the time to explain. And exciting too :slight_smile:

2 Likes