top of page
Recent Posts
Featured Posts

WEB4 OASIS API v2.3.1 Released With New Improved Data API & LOTS More!

This post was originally published on the Our World blog on 5th August 2022




Greetings Friends,


As mentioned in the previous blog post, OASIS API v2.3.0 was also released on 22/07/22 as well as HoloNET RSM.


This release features a number of improvements:


Improved Data API.

Bug fixes.

Improved OASIS Engine allowing the OASIS Engine settings to be fully configurable per API call.

OASIS Engine settings can now be configured per API call to be returned to the caller.

Various other improvements.

Detailed Documentation (covers what is below).


It can be found here: https://api.oasisplatform.world/


As a recap, we recently demoed the Avatar & Karma API's and soon we will demo the new Data API, Keys/Wallet API, SEEDS API, Provider API, Web UI & then do a tech deep dive. We are working on multiple things at the same time such a WEB5 STAR ODK, Holochain integrations, documentation, building new teams/partnerships, designing and planning a number of sites/apps (OAPPs) to be built on the OASIS API as use cases and the OASIS eco-system launch apps & lots more so please bare with us, we will get there in the end! ;-) Thank you! :)


The Data API


The Data API now allows the following optional parameters to be passed in:


LoadChildren - Defaults to true, if this is set then the call will load all child holons.

Recursive - Defaults to true, if LoadChildren is true and this is set then the call will load all child holons recursively, if this is false, it will only load the first child.

MaxChildDepth - Defaults to 0, if LoadChildren & Recursive are true then this species how many levels down to load the child holons. If it is 0 (default) then it will load all levels.

ContinueOnError - Defaults to true, if LoadChildren & Recursive are true and this is set to true then if an error occurs loading a child holon, it will continue to load the next child holon, if it is false, it will return an error and the holons it managed to load up to that point.

Version - Defaults to 0 (will load the latest version) - The version of holon and child holons to load.


These parameters apply to the following API endpoints:


LoadHolon

LoadAllHolons

LoadHolonsForParent

LoadAllHolons and LoadHolonsForParent allow the HolonType to be passed in (defaults to All).


The same parameters also apply to SaveHolon except instead of LoadChildren it is SaveChildren and there is no Version parameter.


There is also a DeleteHolon API endpoint.


For each of the endpoints above, you can either use a querystring to specify the parameters or the Form/Body.


OASIS Engine Settings


For the OASIS Engine parameters you can add these optional parameters to ANY OASIS API call/endpoint:

ProviderType - Allows you to override the provider for this API call (overriding the default OASIS behavior that will use the providers in the AutoFailOverProviders & AutoLoadBalanceProviders lists to automatically select the best/fastest provider for you in your local area and then finding the next fastest one if that network or node goes down). Remember the OASIS API is an abstraction layer over the entire internet and all supported providers, a network of networks so it is not reliant on any one network resulting in the fastest performance possible in your area and zero downtime along with auto-replication/gossip protocol to all other providers in the AutoReplicationProviders list.

SetGlobally - If this is set to true then whatever settings are passed in for this call will apply for all future calls (until they are overrides again). If false, then they will apply only for this call.

AutoFailOverMode - Can be "ON", "OFF" or "DEFAULT". If "DEFAULT" it will use the whatever setting is specified in the OASISDNA.json file in the root of the ONODE that you are making calls to.

AutoReplicationMode - Same as above.

AutoLoadBalanceMode - Same as above.

AutoFailOverProviders - Comma delimited list of the providers to be used or pass in "DEFAULT" to use the list defined in the OASISDNA.json file in the root of the ONODE that you are making calls to.

AutoReplicationProviders - Same as above.

AutoLoadBalanceProviders - Same as above.

WaitForAutoReplicationResult - If true it will wait for the auto-replication to complete before returning or if false it will return immediately for that API call.

ShowDetailedSettings - If this is set to true then the API call will return additional detailed information (see below).



What ShowDetailedSettings returns:


AutoFailOverProviders - list of the providers that will be used for auto-fail over (in priority order).

AutoReplicationProviders - list of the providers that will be used for auto-replication (in priority order).

AutoLoadBalanceProviders - list of the providers that will be used for auto-load balancing


This is on top of the additional new config settings returned in every API call:


AutoLoadBalanceEnabled - Whether AutoLoadBalance is enabled/disabled for this call.

AutoFailOverEnabled - Whether AutoFailOver is enabled/disabled for this call.

AutoReplicationEnabled - Whether AutoReplication is enabled/disabled for this call.

WaitForAutoReplicationResult - If this is true then the API will wait until the auto replication has completed before returning, if false then it will return immediately and carry on the auto-replication in the background (default behavior).

CurrentOASISProvider - The current provider the OASIS used to for the API call.

OASISVersion - The version of the OASIS and environment so currently this is v2.3.1 LIVE.


All of the above has always been under the hood for the OASIS Architecture but with this release, it has now been exposed to each API endpoint giving the developer/caller the ability to fully customise the OASIS to behave exactly as they like for that call unleashing the full power of the OASIS API. In future versions these settings will be able to be specified and persisted per individual avatar per API call.



An example of a JSON request looks like this:


{ "id": "188e0e27-3af2-478f-af86-030c56a42edb", "LoadChildren": true, "Recursive": true, "MaxChildDepth" : 5, "ContinueOnError" : true, "Version": 1, "ProviderType": "MongoDBOASIS", "SetGlobally": true, "ShowDetailedSettings": true, "AutoFailOverEnabled": "true", "AutoReplicationEnabled": "true", "AutoLoadBalanceEnabled": "true",


"AutoFailOverProviders": "MongoDBOASIS, LocalFileOASIS, SQLLiteDBOASIS, Neo4jOASIS, IPFSOASIS, HoloOASIS, TelosOASIS, EOSIOOASIS, EthereumOASIS, ThreeFoldOASIS",


"AutoReplicationProviders": "MongoDBOASIS, HoloOASIS, SQLLiteDBOASIS, IPFSOASIS",


"AutoLoadBalanceProviders": "MongoDBOASIS, LocalFileOASIS, SQLLiteDBOASIS, Neo4jOASIS,


IPFSOASIS, HoloOASIS, TelosOASIS, EOSIOOASIS, EthereumOASIS, ThreeFoldOASIS",


"WaitForAutoReplicationResult": false}


And the data returned looks like this:


{"showDetailedSettings":true,

"result":

{"resultsCount":0,

"errorCount":0,

"warningCount":0,

"savedCount":0,

"loadedCount":0,

"hasAnyHolonsChanged":false,

"isError":false,

"isWarning":false,

"isSaved":false,"isLoaded":true,

"message":"",

"result":{

"parentOmniverseId":"00000000-0000-0000-0000-000000000000",

"parentMultiverseId":"00000000-0000-0000-0000-000000000000",

"parentUniverseId":"00000000-0000-0000-0000-000000000000",

"parentDimensionId":"00000000-0000-0000-0000-000000000000",

"dimensionLevel":0,

"subDimensionLevel":0,

"parentGalaxyClusterId":"00000000-0000-0000-0000-000000000000",

"parentGalaxyId":"00000000-0000-0000-0000-000000000000",

"parentSolarSystemId":"00000000-0000-0000-0000-000000000000",

"parentGreatGrandSuperStarId":"00000000-0000-0000-0000-000000000000", "parentGrandSuperStarId":"00000000-0000-0000-0000-000000000000",


"parentSuperStarId":"00000000-0000-0000-0000-000000000000",

"parentStarId":"00000000-0000-0000-0000-000000000000",

"parentPlanetId":"00000000-0000-0000-0000-000000000000",

"parentMoonId":"00000000-0000-0000-0000-000000000000",

"parentCelestialSpaceId":"00000000-0000-0000-0000-000000000000",

"parentCelestialBodyId":"00000000-0000-0000-0000-000000000000",

"parentZomeId":"00000000-0000-0000-0000-000000000000",

"parentHolonId":"00000000-0000-0000-0000-000000000000",

"original":{"parentOmniverseId":"00000000-0000-0000-0000-000000000000",

"parentMultiverseId":"00000000-0000-0000-0000-000000000000",

"parentUniverseId":"00000000-0000-0000-0000-000000000000",

"parentDimensionId":"00000000-0000-0000-0000-000000000000",


"dimensionLevel":0,

"subDimensionLevel":0,

"parentGalaxyClusterId":"00000000-0000-0000-0000-000000000000"

,"parentGalaxyId":"00000000-0000-0000-0000-000000000000",

"parentSolarSystemId":"00000000-0000-0000-0000-000000000000",

"parentGreatGrandSuperStarId":"00000000-0000-0000-0000-000000000000",

"parentGrandSuperStarId":"00000000-0000-0000-0000-000000000000",

"parentSuperStarId":"00000000-0000-0000-0000-000000000000",

"parentStarId":"00000000-0000-0000-0000-000000000000",

"parentPlanetId":"00000000-0000-0000-0000-000000000000",

"parentMoonId":"00000000-0000-0000-0000-000000000000",

"parentCelestialSpaceId":"00000000-0000-0000-0000-000000000000",

"parentCelestialBodyId":"00000000-0000-0000-0000-000000000000",

"parentZomeId":"00000000-0000-0000-0000-000000000000",

"parentHolonId":"00000000-0000-0000-0000-000000000000"

},"id":"188e0e27-3af2-478f-af86-030c56a42edb"

,"name":"The Justice League Accademy",

"providerUniqueStorageKey":{


"MongoDBOASIS":"62bbbba887f39873fc08333b"},

"providerMetaData":{},"metaData":{},"isNewHolon":false,

"isChanged":true,

"isSaving":false,

"holonType":18,

"createdByAvatarId":"810cf9fc-5750-4d3e-beb0-f22de2c8aba7",

"createdDate":"2022-06-29T02:40:40.322Z",

"modifiedByAvatarId":"00000000-0000-0000-0000-000000000000",

"modifiedDate":"0001-01-01T00:00:00Z",

"deletedByAvatarId":"00000000-0000-0000-0000-000000000000",

"deletedDate":"0001-01-01T00:00:00Z",

"version":1,

"versionId":"00000000-0000-0000-0000-000000000000",

"previousVersionId":"00000000-0000-0000-0000-000000000000",

"previousVersionProviderUniqueStorageKey":{},

"isActive":true,

"createdProviderType":{

"value":18,

"name":"MongoDBOASIS"}}},

"oasisVersion":"v2.3.0 LIVE",

"autoLoadBalanceEnabled":true,

"autoFailOverEnabled":true,

"autoReplicationEnabled":false,

"autoLoadBalanceProviders":"MongoDBOASIS, LocalFileOASIS, SQLLiteDBOASIS, Neo4jOASIS, IPFSOASIS, HoloOASIS, TelosOASIS, EOSIOOASIS, EthereumOASIS & ThreeFoldOASIS",

"autoFailOverProviders":"MongoDBOASIS, LocalFileOASIS, SQLLiteDBOASIS, Neo4jOASIS, IPFSOASIS, HoloOASIS, TelosOASIS, EOSIOOASIS, EthereumOASIS & ThreeFoldOASIS",

"autoReplicationProviders":"MongoDBOASIS, HoloOASIS, SQLLiteDBOASIS & IPFSOASIS",

"currentOASISProvider":"MongoDBOASIS",

"version":"1.1",

"content":{"headers":[]},"statusCode":200,

"reasonPhrase":"OK",

"headers":[],

"trailingHeaders":[],

"isSuccessStatusCode":true

}


We will go over these in more detail in the upcoming demo video...


These settings (except LoadChildren/SaveChildren, Recursive, MaxChildDepth, ContinueOnError & Version) also apply to all other API's such as the Avatar API, Karma API, Keys/Wallets API, SEEDS API, Providers API etc.


OASIS API v2.3.1


v2.3.1 was a very minor release that corrected some minor typeos in the new swagger documentation and also updated the OASIS API RELEASE HISTORY as well as moving it from a simple plain text file to a .md (MarkDown) file so it now has better formatting and links to the commits made for that release, check it out here.


WEB 5 STAR ODK Omniverse Progress


The rest of the demo videos will be released shortly (this month for sure!), we have been very busy updating all the documentation, forming new teams/partnerships, etc, updating our Dev Plan/Roadmap (will be released soon), working on Holochain integrations and of course WEB5 STAR ODK Omniverse, lots of progress has been made and won't be long before we can also demo this at long last! ;-) We can now generate full OAPP's (Moons, Planets, Stars, etc) that contain a zome (module) and multiple holons (data objects) (multi-zome support coming soon) that can work in standalone apps/sites/games etc outside of STAR ODK.


Demo Videos Coming Soon


As mentioned in the previous blog post, we have also been delaying the demo videos until we have Holochain integrated but if that takes too long (Holochain is still not stable and has regular breaking changes) then we will just go ahead and demo without Holochain and then have to demo again after...



OASIS Ecosystem & Javascript NPM Package


We are now building a number of OAPP's (websites and apps) on the OASIS API to be included as our launch apps for the OASIS eco-system later this year, they will also serve as use cases and examples of what the OASIS can do and how to build on it. They are being built on the OASIS API Javascript NPM package mentioned in the previous blog post:



https://www.npmjs.com/package/oasis-api (as you can see, this was actually released 2 months ago)


We will officially announce this soon.


Plug N Play OASIS Web Components/Modules For Devs & End Users


Some are also making use of our new React Generic Re-usable Components, which are part of the new OASIS Component Library we will release later this year (along with the OASIS Web Portal). We are also building other sites on Angular & Vue to give examples of how to build on them along with generic re-usable components. This will allow devs and even end users to pick-n-mix and plug-n-play the OASIS Components into existing or new sites/apps making it much quicker to create and saves you having to build your own UI's. They will also be skinnable (able to set your own theme/look & feel).


We also plan to create generic off the shelf pre-built apps/websites (OAPPs) that just work straight away out of the box that will work on a subscription basis (monthly or annual). You just simply choose which modules you wish to use, configure them, set your theme and your good to go! :)


Welcome To Phase 2 (Time To Start Building On The OASIS API!)


Up to now we have been mainly focused on building a rock solid stable robust performant foundation for the OASIS Architecture as well as the dev tooling to allow devs to jump in and get building OAPPs. Now that phase is wrapping up, we are moving onto phase 2 where we start building out the ecosystem and end user experience (websites, apps, games, services, etc). We hope Our World MVP will also be done by the end of the year...


So lot's of exciting things happening, so now is the time to start building on the OASIS API. If you have a website or app you would like to be built please get in touch and we will be happy to help. We already have a number of clients and OAPP's commissioned (10+), if you jump in now you will get:


- Discounts.

- Special OASIS Eco-System Launch badge added to your OAPP which will be visible to all in search results, etc.

- Your OAPP will also be ranked highest in search results and be featured in the Spotlight section.

- 777 Karma Points For Your Avatar.


Benefits Of Building On The WEB4 OASIS API:


  • Integrate any WEB2 or WEB3 tech into your (web)app without having to learn or worry about new tech stacks/languages (the OASIS API hides all the complexity away so you can focus on creating your dream app!).

  • No need to worry about how different blockchains or WEB2 and WEB3 can talk and integrate with each other, the OASIS handles all this for you!

  • Future prove so when any new language/tech comes out such as Ethereum2 etc, these will be automatically added to the OASIS API for FREE, you will have FREE upgrades for life!

  • WEB5 ready when it is released later this year...




Updated Documentation


In addition to above, the documentation for all our repos has been updated along with our WIKI, check them out here:



More documentation will be updated soon including detailed diagrams for STAR ODK & OASIS Architecture.


Watch this space...


In Love, Light & Hope,


The Our World Tribe.




Sites









Social













Open Source Code






Blog/Forum






NextGen Developer Training Programmes






Business/Dev Plan/Roadmap










Funding






Misc












Key Videos
















Follow Us
Search By Tags
Archive
  • Facebook Basic Square
  • Twitter Basic Square
  • Google+ Basic Square
bottom of page