Skip to content

Releases: eviltester/thingifier

v1.1.0

28 Jan 15:43
Compare
Choose a tag to compare

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

16 Apr 09:41
Compare
Choose a tag to compare

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

29 Aug 22:26
Compare
Choose a tag to compare

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

30 Jul 13:24
Compare
Choose a tag to compare

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

27 Jul 15:56
Compare
Choose a tag to compare

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

17 Jul 10:58
Compare
Choose a tag to compare

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

10 Jul 14:40
Compare
Choose a tag to compare
  • 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

06 Jul 11:39
Compare
Choose a tag to compare

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

04 Jul 13:02
Compare
Choose a tag to compare

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

03 Jul 14:18
Compare
Choose a tag to compare

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.