API server


On GitHub: https://github.com/onmyshelf/api

API language

OnMyShelf's API server is developed in PHP from scratch.

Contributors are welcome to help us make OnMyShelf API server a more secured and (why not) make a complete refactoring.

API reference

To understand API, please read the API reference documentation.

How it works

Front calls

  • The Api class manages every web requests
  • The bin/oms file is used to run some admin operations from the command line

The Api class

Routes and controllers are defined in this class. Controllers calls main classes like Collection, Item, User, etc.

The oms command

The admin operations are made by command line. You have to go first into the project directory and do:

php bin/oms COMMAND

Main classes

The main classes are stored in inc/classes and defines the main components like:

  • Collection
  • Item
  • Property
  • User
  • ...

Secondary classes

The Database class

The Database class manages every database operations.

You can create your own database modules to support any other DBMS.

The Storage class

The Storage class manages every file operations, espectially the media library.

You can create your own storage modules to support any other file system or protocol.

The Import class

The Import class manages every import requests, including query websites to autocomplete items.

You can create your own import modules to import data from API, websites, XML, CSV, etc.


As said above, you can extend or override the secondary classes by adding your own in modules directory.