Great tutorial, the example code provided is very helpful at explaining how to use fpWeb, especially for someone who is new to FP/Lazarus.
I would like to point out that I did reference the source code for some additional help, such as DefaultModuleName, which is useful if you have multiple modules, but want "/" to still do something.
Some stuff I'd love covered in a future fpWeb tutorial would be:
* What are the exceptions we are seeing in Lazarus when we run our app? Are we suppose to trap these exceptions, where/how do we trap them?
* How does the serving of static files work? For dev, it's nice to have the dev server serve JavaScript/CSS/images, but in a production environment, Nginx/Apache/CDN should really serve these.
* How could you override the default request handler? Currently the URI system is /module/action, with no mentioning of any customization.
* How can you send out another HTTP response code? Such as 403, or a 302 to the browser?
* An example of how to override Application.OnGetModule would be great!
* How to handle exceptions in production, such as sending out an email to the admin with the exception text.
* Can the exceptions during development be set to be more human to read? Currently, the stack trace reads like machine code.
* More example code on using sessions, and how the browser cookie is set for these sessions.
* Examples on how to use the other lazweb module types: Web DataProvider, Web JSON-RPC, Web Ext.Direct, HTML Web
I'll see about researching into these myself in the meantime. I am currently debating on using Pascal for future web projects, especially where performance might be needed. When comparing how fast a page loads in Pascal to dynamic languages like Python, it really shows a speed boast, as there's no more bytecode VM in the middle. I'd personally like to do a basic benchmark to say compare fpWeb with a Python microframework like Bottle.py.