Google Summer of Code is a global program organized by Google that offers student developers stipends to write code for various open source software projects.
Accepted student applicants are paired with a mentor or mentors from the participating projects, thus gaining exposure to real-world software development scenarios and workflows.
Mifos is a US-based non-profit initiative that stewards the global community that builds the Mifos X platform – an open technology platform for financial inclusion used by financial services providers worldwide, supported by a network of certified local partners and maintained and extended by a global team of volunteers.
Client
HTTP Request ( JSON Array )
HTTP Response (JSON Array)
Batch API
Mifos API
Individual Requests
Individual Responses
Batch API only accepts a HTTP JSON request and responds with a JSON object as output.
BatchRequest and BatchResponse classes provides objects for input and output to and from the API.
Both the requests and responses are in the form of JSON Array, where each element represents an individual HTTP Request.
requestId - unique Id of individual request
relativeUrl - resource url relative to base url
method - HTTP Request Methods(GET, POST, etc.)
headers - HTTP Headers
reference - requestId of parent request
body - HTTP request Body
requestId - identifies individual input request
statusCode - HTTP Status Code (200, 500, etc.)
headers - optional headers of HTTP Response
body - HTTP Body of output response
[
{
"requestId" : 1,
"relativeUrl" : "clients",
"method" : "POST",
"headers": [{"name": "Content-type", "value": "text/html"}, {"name": "X-Mifos-Platform-TenantId", "value": "text/html"}],
"body" : "{ \"officeId\": 1, \"firstname\": \"Petra\", \"lastname\": \"Yton\", \"externalId\": \"76YYP7\", \"dateFormat\": \"dd MMMM yyyy\", \"locale\": \"en\", \"active\": true, \"activationDate\": \"04 March 2009\",
\"submittedOnDate\": \"04 March 2009\", \"savingsProductId\" : 1 } "
},
{
"requestId" : 2,
"relativeUrl" : "loans",
"method" : "POST",
"headers": [{"name": "Content-type", "value": "text/html"}],
"reference": 1,
"body" : "{ \"clientId\" : \"$.clientId\", \"productId\" : 1}"
},
{
"requestId" : 3,
"method" : "POST",
"relativeUrl" : "clients",
"headers": [{"name": "Content-type", "value": "text/html"}],
"body" : "{ \"officeId\": 1, \"fullname\": \"Pocahontas\", ... }"
},
{
"requestId" : 4,
"method" : "POST",
"relativeUrl" : "savingsaccount",
"headers": [{"name": "Content-type", "value": "text/html"}],
"reference": 3,
"body" : "{ \"clientId\" : \"$.clientId\", \"productId\" : 1, ...}"
}
]
[
{
"requestId" : 1,
"statusCode" : 201,
"headers" : [
{
"name" : "Content-Type",
"value" : "application/json; charset=UTF-8"
}
],
"body" : "{ \"officeId\": 1, \"clientId\": 1, ...}"
},
{
"requestId" : 2,
"statusCode" : 201,
"headers" : [
{
"name" : "Content-Type",
"value" : "application/json; charset=UTF-8"
}
],
"body" : "{ \"officeId\": 1, \"clientId\": 1, \"loanId\": 1, ...}"
},
{
"requestId" : 3,
"statusCode" : 201,
"headers" : [
{
"name" : "Content-Type",
"value" : "application/json; charset=UTF-8"
}
],
"body" : "{ \"officeId\": 1, \"clientId\": 2, ...}"
},
{
"requestId" : 4,
"statusCode" : 201,
"headers" : [
{
"name" : "Content-Type",
"value" : "application/json; charset=UTF-8"
}
],
"body" : "{ \"officeId\": 1, \"clientId\": 2, \"savingsId\": 1, ...}"
}
]
400 Bad Request - Invalid Parameter or Data Integrity Issue.
401 Authentication Error.
403 Unauthorized Request.
404 Resource Not Found
500 Platform Internal Server Error.
The default web application built on top of the MifosX platform for the mifos user community. It is a Single-Page App (SPA) written in web standard technologies like JavaScript, CSS and HTML5. It leverages common popular frameworks/libraries such as AngularJS, Bootstrap and Font Awesome.
An API Structure like Batch API is a highly desirable feature for platforms that handles a large number of transactions per second. WikiPedia and Facebook are some of the very first platforms for developing a Batch API.
It saves a lot of unused Bandwidth and provides much lesser latency time. And is primarily useful for Syncing, Bulk Operations and offline apps.