Вы можете использовать Службы доступа Domino, как говорит Пе Хенрик. Вы также можете написать свой собственный API/функцию, которая вернет запрошенные данные как JSON (или JSONP, если на разных серверах). Я blooged об этом здесь: http://blog.texasswede.com/calling-a-notes-web-agent-from-another-server-using-jsonp/ У меня также есть две презентаций, которые охватывают эту тему: http://blog.texasswede.com/mwlug-2015/ и http://blog.texasswede.com/my-connect-2016-presentation-demo-database/ Существует также пример кода по этим ссылкам.
Но нетрудно создать агент Lotusscript, который обслуживает данные в таком внешнем веб-приложении.
Вот мой класс LotusScript, который поможет вам вернуть JSON:
%REM
Library Class.JSON by Karl-Henry Martinsson
Created Oct 9, 2014 - Initial version
Updated Nov 6, 2015 - Added JSONP support
Description: Class to generate simple JSON from values
%END REM
Option Public
Option Declare
Class JSONdata
Private p_json List As String
Public Sub New()
'*** Set default value(s)
me.p_json("ajaxstatus") = ""
End Sub
%REM
Property Set success
Description: Set success to true or false
%END REM
Public Property Set success As Boolean
If me.success Then
Call me.SetValue("ajaxstatus","success")
Else
Call me.SetValue("ajaxstatus","error")
End If
End Property
%REM
Property Get success
Description: Not really used...
%END REM
Public Property Get success As Boolean
If me.p_json("ajaxstatus") = |"success"| Then
me.success = True
Else
me.success = False
End If
End Property
%REM
Sub SetMsg
Description: Set msg item
%END REM
Public Sub SetMsg(message As String)
Call me.SetValue("msg",message)
End Sub
Public Sub SetErrorMsg(message As String)
Call me.SetValue("errormsg",message)
me.success = False
End Sub
Public Sub SetValue(itemname As String, value As String)
Dim tmp As String
Dim delimiter As String
'*** Check for quote (double and single) and fix value if needed
tmp = Replace(value,Chr$(13),"<br>")
tmp = FullTrim(Replace(tmp,Chr$(10),""))
If InStr(tmp,|"|)>0 Then
If InStr(tmp,|'|)>0 Then
tmp = Replace(tmp,|"|,|"|)
delimiter = |"|
Else
delimiter = |'|
End If
Else
delimiter = |"|
End If
'*** Store value with delimiter in list
me.p_json(itemname) = delimiter & tmp & delimiter
End Sub
Public Sub SetData(itemname As String, value As String)
'*** Store value in list
me.p_json(itemname) = value
End Sub
%REM
Function GetJSON
Description: Return a JSON object as text
%END REM
Function GetJSON As String
Dim json As String
'*** Opening curly braces + CR
json = "{" + Chr$(13)
'*** Loop through all list elements and build JSON
ForAll j In me.p_json
json = json + |"| + ListTag(j) + |":| + j + "," + Chr$(13)
End ForAll
'*** Remove the comma after the last item
json = Left$(json,Len(json)-2) + Chr$(13)
'*** Add closing curly bracket and return JSON
json = json + "}"
GetJSON = json
End Function
%REM
Sub SendToBrowser
Description: Print JSON to browser, with correct MIME type
%END REM
Public Sub SendToBrowser()
'*** MIME Header to tell browser what kind of data we will return (JSON).
'*** See http://www.ietf.org/rfc/rfc4627.txt
Print "content-type: application/json"
Print me.GetJSON
End Sub
%REM
Sub SendJSONPToBrowser
Description: Print JSONP to browser, with correct MIME type
%END REM
Public Sub SendJSONPToBrowser(callbackFunction As String)
'*** MIME Header to tell browser what kind of data we will return (Javascript).
'*** See http://www.rfc-editor.org/rfc/rfc4329.txt
Print "content-type: application/javascript"
Print callbackFunction + "(" + me.GetJSON + ")"
End Sub
End Class
Вы можете использовать Domino Access Services, чтобы получить интерфейс REST к данным Domino –
Domino также является веб-сервер и сервер приложений, вы мог бы построить ваш отчет оттуда –
Вы также можете сделать провайдера webservice в Domino, кодируя его на Java и используя библиотеки, такие как Jackson, Gson или JSON.simple. –