RAD Server has built in support for the OpenAPI (Swagger) REST endpoint documentation format. It provides both YAML and JSON definitions of the endpoints. RAD Server is the REST server framework that ships with RAD Studio (Delphi and C++Builder). A single site and multisite license come with RAD Studio Enterprise and Architect respectively. The open source Swagger Code Gen project can take your Swagger definition file and generate clients for your REST endpoints in a wide variety of languages and frameworks which should work on most platforms. This allows you to access RAD Server from pretty much any language or framework. Want to connect your Flutter client to RAD Server? Have at it using the dart client. Want to connect your fancy Python AI project to RAD Server? Have at it using the python client. What to connect your legacy Android app to RAD Server? There is an Android client for that. Want to connect from PHP (the language that runs 80% of the web) to RAD Server? There is a PHP client for that. There is an online Swagger Editor where you can upload your definition file and generate the clients. I took the default RAD Server Swagger JSON file (available from /api/apidoc.json) which is only the built in endpoints for RAD Server and plugged it into the online Swagger Editor. Once you add your own custom resource modules to RAD Server with your own endpoints it would contain your endpoints as well. You can find out more about documenting your RAD Server endpoints in the documentation. I generated a RAD Server REST client for each of their client options and uploaded that client to Github. The host was set to the default localhost:8080 search (which is what RAD Server’s debug server runs on by default).

In addition to REST Clients is also generates HTML documentation and Atlassian Confluence markup. The Confluence markup is in the cwiki project and the different HTML documentations are in dynamic-html, html, and html2 projects. The html2 project is probably the nicest of the three as it also contains sample usage code with each endpoint that corresponds to the other Swagger clients (curl, Java, Android, Obj-C, Javascript, C#, PHP, Perl, and Python). The online Swagger Editor itself uses the live documentation Swagger UI project which you can also download and use with your Swagger YAML/JSON files.

What was somewhat disappointing about the Swagger CodeGen clients so far is that of the three clients that I tried (bash, csharp, and powershell) all of them require extra work to get running. They have various syntax errors out of the box that have to be fixed before they will compile. This was not unique to the RAD Server JSON definition either as I tried the Swagger CodeGen with other Swagger JSON files with similar results. Additionally, I’m not so sure how clean this generated code is as it seems to have a lot of boilerplate code for what are relatively simple endpoints. The cross platform FireMonkey client code (for Android, IOS, OSX, Windows, and Linux) generated by Auto Tables for RAD Server feels much easier to read and simpler to use. At the same time starting out with a pre-generated client in the programming language or framework you need really goes a long way towards making RAD Server accessible and eases the integration process.

Here is a list of the REST clients/projects I generated for RAD Server:

ada

akka-scala

android

apex

bash

clojure

cpprest (generator errored out)

csharp

csharp-dotnet2

cwiki

dart

dart-jaguar

dynamic-html

eiffel

elixir

elm

erlang-client

flash

go

groovy

haskell-http-client

html

html2

java

javascript (generator errored out)

javascript-closure-angular

jaxrs-cxf-client

jmeter

kotlin

lua

objc

perl

php

powershell

python

qt5cpp

r

ruby

rust

scala

scala-gatling

scalaz

swift

swift3

swift4

tizen

typescript-angular

typescript-angularjs

typescript-aurelia

typescript-fetch

typescript-inversify

typescript-jquery

typescript-node

Head over and check out all 50+ clients in many languages for RAD Server over on GitHub.