ISAPI extensions allow you to access the operating system on your web server (including API calls) while still communicating with your web site through the response object. In this article Raj gives us a nice introduction to ISAPI and also shows us two examples that he's made with Delphi and Paradox. The examples implement a simple login system and utilize a database. Even if you don't know Deplhi then you'll still be able to pick up the basics of ISAPI in a flash!
ISAPI is a technology that was developed by Microsoft before the dawn of ASP and the like. It was, along with CGI, one of the first technologies to allow for "dynamic" content, as opposed to static HTML files. ISAPI stands for Internet Server Application Programming Interface. It's similar to CGI in that It is an executable that's called on the server itself – it's a server-side technology.
There are two types of ISAPI executables: ISAPI filters and ISAPI extensions. In this article we will discuss the creation and use of ISAPI extensions. ISAPI filters are a bit more complex and are used generally for authentication or for site logging. ISAPI extensions are much more flexible, however, just like CGI. They can be used to access databases, output dynamic data, and perform all the other operations that dynamic technologies ought to do. The creation of ISAPI filters is relatively easy in most programming languages. Microsoft's Visual Basic and Visual C++ both have the capability, as do Borland's Delphi and CBuilder.
In this article we'll first learn about the basics of ISAPI, including the benefits of ISAPI over CGI. We'll also use Borland Delphi to make a simple ISAPI extension. Then we'll take a small jump to more advanced ISAPI work and take a look at creating an ISAPI database application in Delphi. (For you VB users out there, don't worry! Its just as easy to do this in VB, and, because VB and Delphi are somewhat similar in structure, you should be able to follow along without any problems. You may even pick up another programming language in the process...).