fglrestful
The fglrestful tool produces REST web services stub files for client programs using an OpenAPI specification.
Syntax
fglrestful [
options ]
service
- options are described in fglrestful options and in fglrestful network options.
- service is the OpenAPI service definition file or URL.
Options
Options | Description |
---|---|
-V or --version |
Displays version information. |
-h or --help |
Displays options for the tool. |
-l or --list
{ path } |
List all the paths or resources of a service. See List path or resource. |
-o or --output filename
|
Specify a name for the output stub file. See Usage. |
-n or --name resource
|
In a service providing access to one or more resources, specify the creation of a stub file for a given resource. See Generate stub file for resource. |
-p or --prefix
prefix |
Set a prefix for constants and variables. |
-b or --binary {
byte } |
Specify that binary types are generated as either BYTE or
FILE types in the stub. |
-f or --format
{
xml } |
Specify the preferred REST format (xml or json). You must use lowercase xml or json in the command. |
-a or --oauth
{ yes } |
Generates OAuth support, default is openapi . |
--ignore-restrictions |
Ignore JSON schema restrictions for data types: VARCHAR(N) ,
DECIMAL(P,S) , and DATETIME types. |
--datetime-fraction
|
Specify DATETIME fraction qualifier. The default is
NULL , meaning YEAR TO SECOND . If value is between 1 and 5,
fglrestful generates YEAR TO FRACTION(N)
where N is the value provided. |
-t or --token token
|
Specify the access token value if the service is protected by an access token. |
-k or --tokenfile filename
|
Specify the access token file if the service is protected by an access token. |
--comment
|
Add comments to the generated stub file. See Output comments. |
-W or --Warnings
{ yes } |
Specify if warnings should be output or not. By default the option value is
yes , meaning the warnings are reported. See Output warnings. |
Options | Description |
---|---|
--proxy location |
Connect via proxy where location is
host or
ip . |
--pLogin login |
Proxy authentication login. |
--pPass pass |
Proxy authentication password. |
--hLogin login |
HTTP authentication login. |
--hPass pass |
HTTP authentication password. |
Usage
You use the fglrestful tool to generate the GWS client stub from an OpenAPI specification file (JSON format).
For example, to access a Web service, you must get the REST information from the service provider. If the server supports the OpenAPI specification, the fglrestful command can generate the description of the service for access by a GWS client application.
If your REST service is written with Genero REST high-level API, a specification file is provided by default when you launch the service with the query string ?openapi.json. If the GWS Server was started on your local machine, for example, the OpenAPI information would be at:
http://localhost:8090/MyService?openapi.json
If your REST Web service uses versioning and contains different versions of operations, you
request the OpenAPI information for a given version with a query string
&version=version-name
in the URI;
http://localhost:8090/MyService?openapi.json&version=v2
If the requested version does not exist, the 404 error will be returned.
--output
or -o
option and the URL of the running
service:fglrestful -o stub_filename http://localhost:8090/MyService?openapi.json
fglrestful -o stub_filename myservice.openapi
In
Genero Studio, you can place the openapi file in your project and the stub file
is generated from it when you compile the file. For more information, see the Genero Studio
documentation.The generated client stub file, stub_filename, has a .4gl extension.
The fglrestful command line tool supports OpenApi version 3.
For usage options, run the command fglrestful without any other parameters or with the help ( -h ) option.
These are examples of common commands used by REST Web service developers.
List path or resource
--list {
path |
resource
}
option provides you with the option to list all the
paths or resources of a service. For example, you can use a command to list the resources of the Web
service in the standard output:- using the URL of the running
service:
fglrestful -l resource http://localhost:8090/MyService?openapi.json
- or using a specification
file:
fglrestful -l resource myservice.openapi
Generate stub file for resource
-n
option in the command. For
example, these commands generate a separate stub file for the "users" resource:- using the URL of the running
service:
fglrestful -n users -o myUsersStub http://localhost:8090/MyService?openapi.json
- or using a specification
file:
fglrestful -n users -o myUsersStub myservice.openapi
Generate stub file for a version
&version=version-name
in the command. For example, these
commands generate a separate stub file for the "v2" version:- using the URL of the running service (the URL must be enclosed in
quotes):
fglrestful -o myVersion2Stub "http://localhost:8090/MyService?openapi.json&version=v2"
- or using an OpenAPI documentation file that contains the version 2 operations
only:
fglrestful -o myV2Stub myserviceV2.openapi
Output comments
--comment
in the command, descriptions set on the
WSDescription attribute on parameters of a
REST function are generated on the client stub. For example, these commands generate a stub file
with comments:- using the URL of the running
service:
fglrestful -o stub_filename --comment http://localhost:8090/MyService?openapi.json
- or using a specification
file:
fglrestful -o stub_filename --comment myservice.openapi
p_resourceId INTEGER {this is the customer id}
The WSDescription
set on the ATTRIBUTES()
clause of the function is not
affected. It is always generated; even if the --comment
option is not
specified.
Output warnings
-W
option in the command. In the example commands warnings are written to the
standard output:- using the URL of the running
service:
fglrestful -W yes -o stub_filename http://localhost:8090/MyService?openapi.json
- or using a specification
file:
fglrestful -W yes -o stub_filename myservice.openapi
Warning in /paths/Property/GetAllProperties/{applicationID}/{includeWillBeSold}/{update}/get/responses Reason : Unsupported media='text/plain' on type='WebAPI_CreditAnalysis_Models_PropertyContainer'
Errors are reported by default. The error message gives same kind of path, but with Error
in
instead of Warning in
.