Easy Setup & Configuration
Provide your database information (host name, database name, etc),
setup a few endpoints, and you're ready to go!
Security and Reliability
FMLuna uses FileMaker's native security model,
giving you complete control over authentication and resource access.
RESTful URLs and Actions
Luna not only makes it possible to create RESTful APIs - it makes it easy as well.
Resources are represented as nice, clean endpoints.
For example: "/Contacts/" or "/Contacts/123/"
And, of course, you work with these resources using standard HTTP methods,
including GET, POST, PUT, PATCH, and DELETE.
Sensible HTTP Status Codes
Luna returns standard HTTP Status Codes that make sense.
For example, it returns the standard "200 OK" response for most successful requests.
But you'll see detailed status codes as well,
such as "403.4 Forbidden" when SSL is required, but the request didn't use it.
For a complete list of the status codes that Luna returns,
Easy, Flexible Authentication
Luna includes code that can be used to authenticate API requests using Bearer tokens.
However, you can use whatever authentication scheme you prefer.
A single setting can be enabled to require that API requests be encrypted with SSL.
Helpful Error Responses
As mentioned earlier, Luna always returns HTTP status codes that make sense.
But when it comes to errors, Luna goes a step further, by returning a JSON-encoded
response body with helpful information about the cause of the error.
With Luna, implementing and supporting new versions of an API is as easy as possible.
When making a request, the API version is simply included in the header.
However, if you'd prefer that the version be specified in the request header,
Luna can support that as well.
When making GET requests, a client can specify the fields that it would like to receive.
For example, a request might look like this:
You can also specify aliases for the field names.
"/Contacts/?columns=Last_Name,First_Name,Email AS Email_Address"
Resource Representations Are Returned
When an API request results in the creation or update of a resource,
the response includes a JSON-encoded representation of that body.
There's no need to follow-up with a GET request to ensure that the action
JSON-Encoded Requests and Responses
When submitting POST, PUT and PATCH requests, the request bodies are also JSON-Encoded.
When a response includes body content, it is also JSON-encoded.