Releases: eviltester/thingifier
v1.1.0
API Challenges has been updated to v 1.1
This release supports sessions in multiplayer mode so that each player has their own session and discrete data store so they cannot see or interfere with other players.
This should make the challenges easier to complete without interference from anyone else.
Additionally the UI makes it easier to juggle and remember sessions, and view the instances based on the current session stored in the cookie.
The main project now has Github actions to run the tests across 3 different JVMs.
Challenge solutions 1.0.2
A release for the API Challenges moving up to 1.0.3 where I added links to solutions, and hints and a displayed id for each challenge.
More Challenges
Plenty of internal refactorings and increased the unit testing.
Released to have a local version of the challenges which matches the live version at:
Challenger
- fixed defect where Challenger data was only loaded from AWS when GET /challenger was used, so harder to use between sessions
- this mainly only affected the 'secret' token session because challenger was loaded during persistence of 'passing' a challenge
- fixed defect where, when no Challenger X-CHALLENGER header on /secret the 401 response did not return, and so passed through into null pointer processing
- surface any aws issues in the message headers and on GUI
- added some additional challenges, sectioned and ordered
Swaggerizer
The APIs now have automatically generated swagger files that can be downloaded from the REST API Documentation page.
API Challenges now highlights the completed challenges in green.
download your chosen app - challenges is the apichallenges.jar
then run with java -jar apichallenges.jar
(or the name of the app you downloaded)
More information on challenges at https://eviltester.com/apichallenges
Challenger v1
This is the first official release of the Challenger.
The initial set of challenges is complete, with 30+ challenges. And challenge status persistence using files for local access or S3 when cloud hosted.
The download here will work in both single user or multi user mode.
java -jar apichallenges.jar
java -jar apichallenges.jar -multiplayer
It has been deployed to cloud hosting:
More information, tutorials etc.
https://eviltester.com/apichallenges
A little larger than expected because of Amazon SDK - this will hopefully be removed in a future release.
Challenger
The Challenger is a 'self teaching' gamification API
https://github.com/eviltester/thingifier/tree/master/challenger
There are a list of challenges, and as you complete them, they will be set to true.
This is an initial beta release with only 9 challenges to try out the concept and engine.
java -jar apichallenges.jar
General improvements to Thingifier 1.5.3
- added hooks at the API request and response level to override default API processing functionality
- api field order is controlled by the order of definitions
- added API Config Profiles to make it easier to configure different API versions
- added filters on GET requests e.g. ?status=true
- added config to control if JSON or XML is allowed in response configured by accept header
- HEAD method supported where GET methods supported
- improved Accept header processing
- added challenger app
- started checklist doc
Deployed
- added styling to the gui
- added many configuration options
- started added 'hooks' for responses to make easier to extend
- added xml and json examples in documentation output
- created heroku instance which auto clears
- split out project into more modules to make easier to customise and maintain
View GUI and Compressed Relationships
added a simple 'view' GUI at /gui to allow showing the entities, and instances, with sample JSON for each instance to make it easier to build API messages for the instances
Also added compressed relationship in the JSON e.g.
"task-of": [
{
"guid": "91b56544-3345-48e6-93f3-986e53586390"
}
],
"categories": [
{
"guid": "61693e4a-b1da-4adb-af37-d53d1b045311"
}
]
instead of
"relationships": [
{
"task-of": [
{
"projects": [
{
"guid": "91b56544-3345-48e6-93f3-986e53586390"
}
]
}
]
},
{
"categories": [
{
"categories": [
{
"guid": "61693e4a-b1da-4adb-af37-d53d1b045311"
}
]
}
]
}
]
Can still use the non-compressed format, and this might be necessary if there are fields with the same name as relationships, but compressed form is much easier to work with.
added relationships in the entity view
Added a default relationships view in the GET for entities.
e.g.
{
"todos": [
{
"doneStatus": "FALSE",
"guid": "fc2c7068-102e-4602-a9f7-1e5c9c869306",
"description": "",
"title": "file paperwork",
"relationships": [
{
"task-of": [
{
"projects": [
{
"guid": "cbb77a23-6e96-4747-8b07-6223f078b428"
}
]
}
]
}
]
},
...
NOTE: cannot amend relationships using POST or PATCH on Entities yet, and can not configure this view.
merged projects and created standalone
Created a maven module project to merge the automated execution REST API tests with the project.
Also created two standalone projects to run the example apis without any configuration
If you want to run the thingifier then use -model=modelname
to switch between built in models.
The standAloneTodoListRestApi is a very simple API with only the todos endpoint. for very basic experimentation and getting used to tools etc.
The list manager has more complex set of dependencies.
thingifier has both built in, and you can switch between them.