sxapi-core project
sxapi for simple and extensible api (Application Programming Interface) is an an open-source framework for quickly building simple and small API based on microservice architecture.
Very light (application less than 100Ko, full container stack for less than 30Mo) and configured with a single json file, you can build instantly small atomic API endpoints as well as fully featured enterprise-sized API.
Getting Started with npm module
The npm module method using the sxapi-core npm module published in npm public registry is the best solution if you plan to develop your own component or embed you api into another application.
For more information on how to run your first sxapi application using sxapi npm module, please read the npm module user guide
Getting Started (others methods)
The simplest and fastest way to get a running sxapi application is to use the public docker image. Read the docker image user guide
If you plan to extend sxapi-core, please read the source code user guide
Getting started with npm
1. Install nodejs and npm
Theses command are for a Red Hat Linux like environement (Fedora, CentOS, RHEL, Suse). Please adapt yum
command to the apt-get
equivalent if you are using a Debian like system (Ubuntu, Debian)
sudo yum install -y nodejs npm
For more information on how to install and execute a nodejs environment, please see the official npm install guide
2. Create your working directory
To run you test in a sandbox, you should isolate your sxapi test from your current work by creating a working directory.
mkdir ~/test-sxapi
cd ~/test-sxapi
3. Create your package.json
Use npm command to create your package.json
file and add sxapi npm module as a dependency. For more information on how to create a npm package, you can read the npm init documentation
npm init --force
// answer dynamic questions or type multiple time <enter>
npm install sxapi-core --save
4. Create your sxapi.yml configuration file
Create a file named sxapi.yml
vi ~/test-sxapi/sxapi.yml
Edit it with the following content
name: sample-api
description: my sample api using sxapi-core framework
version: 0.0.0
debug: true
log:
filters:
level: '0,1,2,3,4'
type: debug,info,error,warn
server:
endpoints:
- path: "/"
body: "<html><head></head><body><h1>My sample API</h1></body></html>"
You can change name
, description
, version
and server.endpoints.body
with personalized content
5. Create an application entrypoint
In order to start your application and execute your api, you need to create a
server application file. Default file is index.js when creating package.json.
vi index.js
in you index.js, add the following lines
var $app = require("sxapi-core").app;
$app.launch(function () {
$log.info("application started");
});
6. Run your application
node index.js
7 Explore your api
Connect to http://localhost:8080/
with your favorite navigator. You should
see an html message "My Sample API".
You can also use the examples templates designed for openshift to deploy instantly a
simple app, a
bot daemon or a
full application
Creating your own API
sxapi-core come with many components to help you build your own api. As soon as you have an api instance working, you should focus on making change to your sxapi.yml
config file and implement api endpoints you want to create.
To help you understand how you can configure your api, you can :
- Visit sxapi-core official documentation and read carefully the configure section
- Visit sxapi-sample project and explore sample config file to help find sample code or ready-to-use config file
Documentation
If you want to have more information on how to install, develop and run this framework and use it in your project, please read the full documentation or our user guides and execute the following steps :
- Install sxapi framework
- Configure you API
- Run you application
- Develop sxapi resource
- Contribute to sxapi project
Release notes
If you want to have more information on a minor release, read released notes
Release | Date | Description |
---|
0.3.53 | 2020-09-01 | stabilize aws_s3 resource |
0.3.17 | 2019-07-27 | Adding swagger module and improve couchbase support |
0.3 | 2019-03-08 | Moving config to yaml syntax |
0.2 | 2018-03-18 | Adding bot behavior, event messaging and containerized images |
0.1 | 2018-01-20 | Adding all resources, session and websockets |
beta | 2016-10-29 | micro api componement with log and lightweight webserver |
Troubleshooting
If you run into difficulties installing or running sxapi, you can create an issue.
Built With
Contributing
Read the contributing guide for details on our code of conduct, and the process for submitting pull requests to us.
Authors
This project is mainly developped by the startx dev team. You can see the complete list of contributors who participated in this project by reading CONTRIBUTORS.md.
License
This project is licensed under the GPL Version 3 - see the LICENSE.md file for details