lazarus/components/fpweb/README.txt
2019-05-11 16:03:10 +00:00

118 lines
4.1 KiB
Plaintext

This is the fpWeb components directory README.
It contains 2 packages:
The LazWeb package implements IDE functionality for FCL-Web.
It should work with version 2.4.x of FPC.
The LazWebExtra package implements more IDE projects and components,
which are available only as of version 2.5.1 of the compiler.
As these items become available in a stable release, the package will be
merged in Lazweb.
Both packages registers a series of project wizards, and some components.
The following project types are registered in the lazweb package:
- CGI application
- Apache Application (an apache module)
- Custom CGI application ("bare bones" cgi, no web modules)
- FastCGI application
- Custom FastCGI application ("bare bones" fastcgi, no web modules)
For each of these projects, a Web Module is created by default.
The following web modules can be created:
- WebDataModule (TFPWebModule)
This is a general-purpose HTTP request handling module,
which can be used to handle any HTTP request for any kind of data.
- HTMLModule (TFPHTMLModule)
This is a specific HTTP request handling module, aimed specially
at producing a HTML response.
The following components are registered:
THTMLDatasetContentProducer
Creates a HTML table based on a TDataset descendent
THTMLSelectProducer
Creates a <SELECT> element based on a TStringList.
THTMLDatasetSelectProducer
Creates a <SELECT> element based on a dataset (a lookup combo)
THTMLEntityProducer
Creates a HTML ENTITY document
THTMLPageProducer
Creates a HTML page using an event handler.
THTMLDataSetFormShowProducer
Creates a <FORM> which allows one to show a single record of a dataset.
THTMLDataSetFormEditProducer
Creates a <FORM> which allows one to edit a single record of a dataset.
THTMLDataSetFormGridProducer
Creates a series of forms.
The lazwebextra package additionally registers the following web modules
and components:
- Web Data Provider module (TFPWebProviderDataModule)
Used to convert TDataset to a variety of formats and to handle updates to the data.
(ExtJS JSON and XML currently)
- JSON-RPC request handling module (TJSONRPCModule)
Used to handle JSON-RPC requests.
- Ext.Direct handling of JSON-RPC requests (TExtDirectModule)
Handles the Ext.Direct variant of JSON-RPC.
The following components are registered:
TFPWebDataProvider
Handles CRUD (Create/Read/Update/Delete) operations on a TDataset
TSQLDBWebDataProvider
Handles CRUD (Create/Read/Update/Delete) operations on a TSQLConnection.
(INSERT/SELECT/UPDATE/DELETE SQL statements can be specified).
TWebdataInputAdaptor
Transforms HTTP request to a format that TFPWebDataProvider
understands, using event handlers.
TExtJSJSonWebdataInputAdaptor
TWebdataInputAdaptor descendent that transforms a ExtJS Datastore
JSON request to input usable by TFPWebDataProvider.
TExtJSJSONDataFormatter
Outputs JSON as expected by ExtJS datastores from all operations on a
TFPWebDataProvider instance.
TExtJSXMLWebdataInputAdaptor
TWebdataInputAdaptor descendent that transforms a ExtJS Datastore
XML request to input usable by TFPWebDataProvider.
TExtJSXMLDataFormatter,
Outputs XML as expected by ExtJS datastores from all operations on a
TFPWebDataProvider instance.
TJSONRPCHandler
Component that handles a single JSON-RPC request.
TJSONRPCDispatcher
Component that dispatches a batch of JSON-RPC requests to appropriate
TJSONRPCHandler instances.
TSessionJSONRPCDispatcher
Component that dispatches a batch of JSON-RPC requests to appropriate
TJSONRPCHandler instances, and which is session-aware. (session in the
fcl-web sense of the word)
TJSONRPCContentProducer
Component that handles input from a HTTP request, passes it on to a
TJSONRPCDispatcher instance and formats the result.
TExtDirectDispatcher
TExtDirectContentProducer
Descendents of TJSONRPCDispatcher and TJSONRPCContentProducer that
understand the Ext.Direct variant of extJS.
Demo projects are available in the demo subdirectory, and additional demos
can be found in the fcl-web/examples directory of FPC.
Additional READMEs with information on the components are in the fcl-web/src/*
directories.
Author: Michael Van Canneyt & Joost van der Sluis