Version: 1.16
Description: Create Web API Server with CRUD functionalities
Template:
. .
. .
How to use:
Comments: I try to make this template as compact as possible (remove user table and email function) but it is still big. If you don't like some features, just remove them.
About auto generated help file (version 1.10+)
https://www.b4x.com/android/forum/threads/web-api-template.133764/post-851114
Description: Create Web API Server with CRUD functionalities
Updates: |
---|
Web API Server 2.0 is available. Check https://www.b4x.com/android/forum/threads/project-template-web-api-server-2.143310/ |
Template:
- Web API Server (1.16).b4xtemplate
- ByteConverter
- JavaObject
- jServer
- Json
- jSQL
- CRUD based - RESTful Web API (GET, POST, PUT, DELETE)
- Front-end (HTML, CSS, JS, Bootstrap)
- Support MySQL and SQLite database (Can be modified for MS SQL or SQL Express)
- Separate SQL queries file (queries-mysql.ini and queries-sqlite.ini)
- Sample database auto-generated for first run (Category and Product tables with dummy data)
- Versioning (using ROOT_PATH in config.ini, set as "/" if you don't want versioning)
- Auto generated documentation with API test.
- Copy the "Web API Server (1.16).b4xtemplate" file into B4J Additional Libraries folder.
- Open B4J and create a new project with "Web API Server" template.
- Give your project any name you like, for e.g. WebAPI
- Run the project in Debug mode.
You will see something like this in the Logs:
B4X:Web API Server (version = 1.16) is running on port 19800 Open the following URL from your web browser http://127.0.0.1:19800/v1/
- Copy the URL showed in Logs and open it using your web browser.
- To connect to MySQL server, go to Objects folder and open "config.ini".
- Comment the SQLite section and uncomment the MySQL section.
- Edit the root password at line #45 (second last line). Save the file.
- In B4J project, comment the line
'#AdditionalJar: sqlite-jdbc-3.39.3.0
and uncomment the line
#AdditionalJar: mysql-connector-java-8.0.30.
Make sure you are using the correct version of connector.
B4X:#Region AdditionalJar ' MySQL connector #AdditionalJar: mysql-connector-java-8.0.30 ' SQLite connector '#AdditionalJar: sqlite-jdbc-3.39.3.0 #End Region
- Follow step #3 above.
- Web API Client (1.05).b4xtemplate
How to use:
- Copy the "Web API Client (1.05).b4xtemplate" file into B4X Additional Libraries folder.
- Open B4A (B4J or B4i) and create a new project with "Web API Client (1.05)" template.
- Edit the URL with your Web API Server host or IP
B4X:Private URL As String = "http://192.168.50.42:17178/v1/" ' Change to your Web API Server URL
- Run in debug.
Comments: I try to make this template as compact as possible (remove user table and email function) but it is still big. If you don't like some features, just remove them.
12/04/2023
- Web API Server - v1.16
- Similar to Web API Template 2.0, it is now less confusing by using #Desc and #Path for documentation
- Web API Client - v1.0.5 (compatible with Web API Server v1.16)
03/10/2022
- Web API Server - v1.15
- JS: Fixed bug point to wrong id for Category dropdown in Edit dialog
- JS: Remove comma in thousand for price textbox in Edit dialog
- Add a Home button in Category page
01/10/2022
- Web API Server - v1.14
- Manage Category in new page
- Dynamic populate Category dropdown in add/edit product dialog
- Improve JS scripts
- SQLite version point to sqlite-jdbc-3.39.3.0
27/08/2022
- Web API Client - v1.0.4 (compatible with Web API Server v1.13)
25/08/2022
- Web API Server - v1.13
- Home page with Add, Edit and Delete Product (using Bootstrap modal and jQuery Validate)
- Help or API documentation page improvements
- Many variables and SQL commands are renamed!
- SQLite version point to sqlite-jdbc-3.39.2.0
- Separate Category and Product handlers
- FindHandler added for more search endpoints
- Endpoints structure changed!
- Warning: This version is not compatible with Web API Client v1.0.3 and below
28/05/2022
- Web API - v1.12 (fixed a bug in HelpHandler.bas when reading commented line)
- Updated to use jServer v4.0
- Web API Client - v1.0.3 (Converted to B4XTemplate)
26/01/2022
- Create Publish.zip using #CustomBuildAction
- Create Publish.zip using Comment Link
19/10/2021 - v1.11
- Better use of Connection Pool for MySQL (do not close pool)
- Change DataUtils module to DataConnector class
- Clean up some redundant codes
08/10/2021
- WebAPI Client - v1.02
- - Some bugs fix and UI improvements
24/9/2021 - v1.10
- Auto generated documentation/help file based on handler classes (Click on the Question mark icon on top right corner to access the help file)
06/09/2021
- WebAPI Client - v1.01
- - Some bugs fix and UI improvements
04/09/2021 - v1.09
- Fixed PutProductByCategoryAndId to update Product as different Category.
- WebAPI Client (B4X) - v1.00
02/09/2021 - v1.08
- Added ConfigureCORS for ajax request.
01/09/2021 - v1.07
- Changes in Utility module (ReturnSuccess and ReturnSuccess2) require Status Code.
- Changes in ProductHandler (PostCategory and PostProductByCategory) return new record as result with Status Code 201.
27/08/2021 - v1.06
- Support for SQLite database
- Web API Server - v1.16
- Similar to Web API Template 2.0, it is now less confusing by using #Desc and #Path for documentation
- Web API Client - v1.0.5 (compatible with Web API Server v1.16)
03/10/2022
- Web API Server - v1.15
- JS: Fixed bug point to wrong id for Category dropdown in Edit dialog
- JS: Remove comma in thousand for price textbox in Edit dialog
- Add a Home button in Category page
01/10/2022
- Web API Server - v1.14
- Manage Category in new page
- Dynamic populate Category dropdown in add/edit product dialog
- Improve JS scripts
- SQLite version point to sqlite-jdbc-3.39.3.0
27/08/2022
- Web API Client - v1.0.4 (compatible with Web API Server v1.13)
25/08/2022
- Web API Server - v1.13
- Home page with Add, Edit and Delete Product (using Bootstrap modal and jQuery Validate)
- Help or API documentation page improvements
- Many variables and SQL commands are renamed!
- SQLite version point to sqlite-jdbc-3.39.2.0
- Separate Category and Product handlers
- FindHandler added for more search endpoints
- Endpoints structure changed!
- Warning: This version is not compatible with Web API Client v1.0.3 and below
28/05/2022
- Web API - v1.12 (fixed a bug in HelpHandler.bas when reading commented line)
- Updated to use jServer v4.0
- Web API Client - v1.0.3 (Converted to B4XTemplate)
26/01/2022
- Create Publish.zip using #CustomBuildAction
- Create Publish.zip using Comment Link
19/10/2021 - v1.11
- Better use of Connection Pool for MySQL (do not close pool)
- Change DataUtils module to DataConnector class
- Clean up some redundant codes
08/10/2021
- WebAPI Client - v1.02
- - Some bugs fix and UI improvements
24/9/2021 - v1.10
- Auto generated documentation/help file based on handler classes (Click on the Question mark icon on top right corner to access the help file)
06/09/2021
- WebAPI Client - v1.01
- - Some bugs fix and UI improvements
04/09/2021 - v1.09
- Fixed PutProductByCategoryAndId to update Product as different Category.
- WebAPI Client (B4X) - v1.00
02/09/2021 - v1.08
- Added ConfigureCORS for ajax request.
01/09/2021 - v1.07
- Changes in Utility module (ReturnSuccess and ReturnSuccess2) require Status Code.
- Changes in ProductHandler (PostCategory and PostProductByCategory) return new record as result with Status Code 201.
27/08/2021 - v1.06
- Support for SQLite database
About auto generated help file (version 1.10+)
https://www.b4x.com/android/forum/threads/web-api-template.133764/post-851114
Attachments
Last edited: