Gambas Farm Server Protocol
Index
1. Protocol summary
The Gambas farm server protocol is based on HTTP requests.
Sending a request
Most of the requests must be submitted through the POST action, exactly like
a HTML form.
Gambas 3.7 will provide an HttpForm class to send these kind of requests easily.
If you don't have to send files, you can use the GET action.
Getting the answer
The answer is usually a text file whose the first line is the answer status,
and the rest of the file the answer contents.
The line separator is the CR
+LF
sequence.
If the status line is
10 OK
, then the request has been successful, and the
useful contents starts at the second line.
Otherwise, the request has failed, and the answer status is made of a two-digit
error code, a space, and an error description. The answer contents may include
more error details.
Every text is UTF-8 encoded.
2. Register a user
Request
http://<server>/farm/register
Arguments
login
|
User login.
|
password
|
User password.
|
name
|
User full name.
|
email
|
Confirmation e-mail.
|
Description
This request allows to register a new user to the server.
An mail is sent to the specified e-mail address that includes an activation link.
That activation link is the confirm registration request (see the next paragraph),
and is based on a random hexadecimal key.
3. Confirm registration
Request
http://<server>/farm/confirm
Arguments
login
|
User login.
|
key
|
Confirmation key.
|
Description
This request confirm the registration of the new user.
The confirmation key must match the key provided into the e-mail sent by the registration request.
4. Publishing a software
Request
http://<server>/farm/publish
Arguments
login
|
Software owner login.
|
password
|
Software owner password.
|
name
|
Software name.
|
version
|
Software version, with the X.Y.Z syntax.
|
desc
|
Software full description.
|
gambas
|
Gambas version required, with the X.Y.Z syntax.
|
checksum
|
SHA256 source archive checksum.
|
source
|
Source archive. It must be a file with the tar.gz or tar.bz2 extension.
|
icon
|
Software icon. It must be a 64x64 PNG file.
|
screenshot
|
An optional screenshot of the software. It should be a JPEG or PNG file.
|
url
|
An optional URL for the software project website.
|
tags
|
A list of tags, as identifiers separated by commas.
|
dependencies
|
A list of dependencies separated by commas. A dependency is a software name followed by an optional minimum X.Y.Z version.
|
Description
This request allows to register a software to the server.
You must provide a valid login and password to register.
5. Get information about a software
6. Download a software
7. Add or remove a vote for a software
8. Software search
9. Tag search
10. Error codes