Skip to content

implement the 1st version of WikidataComplete Web service (wrapper service) #4

@anbo-de

Description

@anbo-de

Context

The new WikidataComplete web service needs to be compatible with the old one.

flowchart LR;
subgraph firstiteration["first iteration"]
  direction LR
  WikidataGadget[["existing\nWikidataComplete\ngadget"]] -- Restful\nrequest --> NewService["new\nWikidataComplete\nweb service"]
  NewService -- Restful\nrequest  --> ExistingWikidataComplete[["existing WikidataComplete\nweb service"]]
  NewService -- store\nprocess\ninformation --> Database[(Database to store\n additional information\nabout the process,\ne.g., the actions per user)]
  NewService -- deploy\nautomatically --> DeployServer
  DeployServer>http://demos.swe.htwk-leipzig.de/ ]
end

style firstiteration fill:#fff,stroke:#333
style WikidataGadget fill:#ccf,stroke:#333
style ExistingWikidataComplete fill:#cfc,stroke:#333
style NewService fill:#fcf,stroke:#333
style Database fill:#ffc,stroke:#333
style DeployServer fill:#cff,stroke:#333
Loading

Thereafter, we will allow data donations.

flowchart LR;
subgraph seconditeration["later iteration"]
  direction LR
  WikidataGadget[["existing\nWikidataComplete\ngadget"]] -- Restful\nrequest --> NewService["new\nWikidataComplete\nweb service"]
   ExistingWikidataComplete[["existing WikidataComplete\nweb service"]] -- donates Wikidata\nfact candidates\nvia Restful request  --> NewService 
  NewService -- store\nprocess\ninformation --> Database[(Database to store\n additional information\nabout the process,\ne.g., the actions per user)]
  NewService -- deploy\nautomatically --> DeployServer
  DeployServer>http://demos.swe.htwk-leipzig.de/ ]
end

style seconditeration fill:#fee,stroke:#333
style WikidataGadget fill:#ccf,stroke:#333
style ExistingWikidataComplete fill:#cfc,stroke:#333
style NewService fill:#fcf,stroke:#333
style Database fill:#ffc,stroke:#333
style DeployServer fill:#cff,stroke:#333
Loading

Definition of Done (DoD)

  • @D063520 @gabinguo Please provide an API description of the existing web service (green)

  • @lalit97 Please implement the new web service (magenta) which is a wrapper for the existing web service (green) (see also Implement API so that it matches the one from the wikidatacomplete plugin #11 )

    • i.e., each request to the new web service (magenta) is translated into a request to the existing web service (green)
    • hence, the following should be true: the new web service can be used as backend for the existing WikidataComplete Gadget (blue) (only the web service URI needs to be changed), i.e., it behaves exactly the same
    • @lalit97 the requests to the existing web service are in a separate Python module (i.e., your web service should consist of at least two Python classes)
    • @lalit97 your common.js was changed to point to the new web service, in the next meeting show that you can add facts like with the existing web service
  • (skipped) @lalit97 create a Dockerfile for the new web service (magenta)

  • (skipped) @lalit97 after having finished the new web service inform @MindMaster98, he will provide a GitHub action to deploy the new service automatically to the demos server (cyan)

  • @lalit97 the API was documented using OpenAPI

    • the API documentation of the new service should be exactly the same as the old API
  • (skipped) @lalit97 make application parameters configurable via argparser or similar (see example)

  • the implemented functionality is tested (automatically) using a unit test

  • the version of the artifact was incremented (using Semantic Versioning -- ask @anbo-de if you are unsure what increment should be used) and documented here in a comment (use GitHub releases functionality)

    • the first version should be 0.1.0
  • the documentation was checked and was updated if necessary, updated documentations are linked here in a comment

  • the corresponding commit was mentioned here in a comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions