Updates: |
---|
Web API Server 2.0 is available. Check https://www.b4x.com/android/forum/threads/project-template-web-api-server-2.143310/ |
Version: 1.16
Description: Create Web API Server with CRUD functionalities
Sample application: [B4X] Todo List based on Web API
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: