Documentation

Trace:

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
jvx:common:util:rest [2019/03/13 09:11]
admin
jvx:common:util:rest [2020/06/15 14:38]
cduncan Edited for English grammar (capitalization, punctuation, correct verb conjugation)
Line 1: Line 1:
-~~Title: REST services~~+~~Title: REST Services~~
  
 We define the business logic with [[jvx:​server:​lco:​objects|life-cycle objects]] on the server side. The access authorization of an application is checked by a [[jvx:​server:​security:​manager|security manager]]. The business logic is usually available via master- or subconnections from the client. We define the business logic with [[jvx:​server:​lco:​objects|life-cycle objects]] on the server side. The access authorization of an application is checked by a [[jvx:​server:​security:​manager|security manager]]. The business logic is usually available via master- or subconnections from the client.
Line 7: Line 7:
 For the use of the REST services, the authentication with username and password is necessary. [[https://​en.wikipedia.org/​wiki/​Basic_access_authentication|BASIC]] is used as the authentication mechanism. The credentials are checked by the security manager of the application as usual. You do not need to change a source code line to integrate the REST services. For the use of the REST services, the authentication with username and password is necessary. [[https://​en.wikipedia.org/​wiki/​Basic_access_authentication|BASIC]] is used as the authentication mechanism. The credentials are checked by the security manager of the application as usual. You do not need to change a source code line to integrate the REST services.
  
-=====How ​it works=====+=====How ​It Works=====
  
 The REST implementation in JVx has been implemented with [[http://​www.restlet.org/​|Restlet]]. To use the REST services, the deployment descriptor must be configured as follows: The REST implementation in JVx has been implemented with [[http://​www.restlet.org/​|Restlet]]. To use the REST services, the deployment descriptor must be configured as follows:
Line 30: Line 30:
 With this configuration,​ the following services are available: With this configuration,​ the following services are available:
  
-===== Available ​services ​=====+===== Available ​Services ​=====
  
 ==== Administration ==== ==== Administration ====
Line 41: Line 41:
   * [[#​change_password|Change password]]   * [[#​change_password|Change password]]
  
-=== Test authentication ​===+=== Test Authentication ​===
  
 Test URL:​\\ ​ Test URL:​\\ ​
Line 64: Line 64:
 If the login was successful, no response is generated and the status code is 204 (SUCCESS_NO_CONTENT). If the login was successful, no response is generated and the status code is 204 (SUCCESS_NO_CONTENT).
  
-=== Change ​password ​===+=== Change ​Password ​===
  
 Test URL:​\\ ​ Test URL:​\\ ​
Line 88: Line 88:
 If the password has been changed, no response is generated and the status code is 204 (SUCCESS_NO_CONTENT). If the password has been changed, no response is generated and the status code is 204 (SUCCESS_NO_CONTENT).
  
-=== Custom ​services ​===+=== Custom ​Services ​===
  
 If you want to register your own service at runtime, this can be done by If you want to register your own service at runtime, this can be done by
Line 105: Line 105:
 ''<​nowiki>​http://​server:​port/​webapp/​services/​rest/</​nowiki>​**<​fc #​BF0000>​APPLICATION_NAME</​fc>​**/​**<​fc #​BF0000>​LIFECYCLE_CLASS</​fc>​**/​_admin/​**<​fc #​BF0000>​ACTION</​fc>​**/​**<​fc #​BF0000>​parameter</​fc>​**''​ ''<​nowiki>​http://​server:​port/​webapp/​services/​rest/</​nowiki>​**<​fc #​BF0000>​APPLICATION_NAME</​fc>​**/​**<​fc #​BF0000>​LIFECYCLE_CLASS</​fc>​**/​_admin/​**<​fc #​BF0000>​ACTION</​fc>​**/​**<​fc #​BF0000>​parameter</​fc>​**''​
  
-====Storage ​access ​ ​(CRUD, ​Meta Data)====+====Storage ​Access ​ ​(CRUD, ​Metadata)====
  
   * [[#​get-request_select|Select]]   * [[#​get-request_select|Select]]
Line 395: Line 395:
  
 \\ \\
-==== Call actions ​====+==== Call Actions ​====
  
 The [[jvx:​communication:​calling_server_action|server-side actions]] can be called directly from the life-cycle object as well as from available business objects. It's also possible to use parameters. The [[jvx:​communication:​calling_server_action|server-side actions]] can be called directly from the life-cycle object as well as from available business objects. It's also possible to use parameters.
Line 464: Line 464:
  
 curl_close($ch);​ curl_close($ch);​
 +</​file>​
 +
 +Using Javascript:
 +
 +<file html rest.html>​
 +<​html>​
 +<​head>​
 +<​script>​
 +function doRest() {
 +    const http = new XMLHttpRequest();​
 +    const url='​https://<​server>/​DB/​services/​rest/​League/​Standings/​action/​getResults';​
 +
 +    http.open("​POST",​ url, true, '​user',​ '​password'​);​
 +    http.withCredentials = true;
 +    http.send("​[88]"​);​
 +
 +    http.onreadystatechange=(e)=>​
 +    {
 + if (http.readyState == 4)
 + {
 +     console.log(atob(eval(http.responseText)));​
 + }
 +    }
 +}
 +</​script>​
 +</​head>​
 +<​body>​
 +<button type="​button"​ onclick="​doRest()">​REST call</​button>​
 +</​body>​
 +</​html>​
 </​file>​ </​file>​
  
This website uses cookies for visitor traffic analysis. By using the website, you agree with storing the cookies on your computer.More information