MA1. REST API installation

openIMIS components: REST API v1.0.0+, Database v1.4.0+, Web Application v1.4.0+ 
Implementation roles required: IT Officer/Developer
Web Services installation guide are available here.

Video tutorial

 

Prerequisites

In order to install openIMIS REST API, you need first to install openIMIS Database and openIMIS Web Application. If not yet installed, please follow the steps from the database installation and web application installation guides.

Download openIMIS REST API

Download and unzip the release from Github rest_api_c-sharp repository under the IIS' wwwroot (C:\inetpub\wwwroot).

Install required libraries

openIMIS REST API is developed in the .NET Core open-source framework. Download and install the required libraries for .NET Core 2.1.

Configure openIMIS REST API in IIS

The openIMIS REST API can be installed as a separate website or as an application within the openIMIS Web Application website. The following instructions are for the second case. 

In Internet Information Service (IIS) Manager, right-click on the openIMIS Web Application website and select Add application. Fill in the form as follows:

  • Alias: rest (you can choose here another alias)

  • Physical Path: The path of the openIMIS REST API folder in the IIS' wwwroot (usually C:\inetpub\wwwroot\openIMIS_REST_API_x64_vX.Y.Z)

Configure openIMIS REST API

Edit appsettings.Production.json file:

{ "ConnectionStrings": { "IMISDatabase": "Server=Server;Database=IMIS;User ID=User;Password=Password" }, "JwtIssuer": "http://openimis.org", "JwtAudience": "http://openimis.org", "JwtExpireDays": 365 }
  • ConnectionStrings.IMISDatabase: the databased link and credentials. In case the server name is under the form "ServerName\SQLInstanceName", you will need to use double '\': "ServerName\\SQLInstanceName"

  • JwtIssuer, JwtAudience: the authentification token validation information

  • JwtExpireDays: the number of days the authentification token will be valid after its delivery

Edit appsettings.json file:

{ "JwtIssuer": "http://openimis.org", "JwtAudience": "http://openimis.org", "JwtExpireDays": 5, "Logging": { "IncludeScopes": false, "Debug": { "LogLevel": { "Default": "Warning" } }, "Console": { "LogLevel": { "Default": "Warning" } } }, "AppPrefixDir": "/rest", "AppSettings": { "FromPhone_Renewal": "\\FromPhone\\Renewal\\", "FromPhone_Renewal_Rejected": "\\FromPhone\\Renewal\\Rejected\\", "FromPhone_Claim": "\\FromPhone\\Claim\\", "FromPhone_Claim_Rejected": "\\FromPhone\\Claim\\Rejected\\", "FromPhone_Feedback": "\\FromPhone\\Feedback\\", "FromPhone_Feedback_Rejected": "\\FromPhone\\Feedback\\Rejected\\", "Extracts_Phone": "\\Extracts\\Phone\\", "Enrollment_Phone": "\\FromPhone\\Enrollment\\", "Extracts_Offline": "\\Extracts\\Offline\\", "JsonDebugFolder": "\\FromPhone\\Enrollment\\Debug\\", "SubmittedFolder": "\\Images\\Submitted\\", "UpdatedFolder": "\\Images\\Updated\\", "SmsStrings": "\\Escape\\Sms\\Strings\\", "SmsStringsSecondary": "\\Escape\\Sms\\StringsSecondaryLanguage\\" }, "SmsGateWay": null }
  • JwtIssuer, JwtAudience, JwtExpireDays: are overridden by appsettings.Production.json. 

  • Logging: no need to modify this

  • AppPrefixDir: equivalent to the alias configured in IIS preceded by '/'; empty if configured as website and not application in IIS

  • AppSettings: these settings are the same as in the Web Application Web.config file

  • SmsGateWay: required by the ePayment module and depends on the actual implementation

Add rewrite rule for Image folder 

The Image folder is used by both Web Application and Mobile Applications. Usually, we keep only one folder for all the images under the Web Application folder. From the mobile phone, the Images path is added to the configured REST API base URL which doesn't exist. Based on the previous configurations, add the following URL rewrite rule. 

  • Set Match URL pattern: rest/Images/(.*)

  • Set the action:

    • Type: rewrite

    • Rewrite URL: /Images/{R:1}

Test the installed REST API

To access and test the newly installed REST API, open your browser and navigate to http://127.0.0.1/rest/api-docs.

openIMIS demo server REST API

For testing purposes, you can access the openIMIS demo server REST API: https://demo.openimis.org/rest/api-docs/index.html?urls.primaryName=V2%20Docs

 



Did you encounter a problem or do you have a suggestion?

Please contact our Service Desk



This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. https://creativecommons.org/licenses/by-sa/4.0/