我应该了解API的哪些方面?

时间:2010-11-27 16:50:34

标签: php api

我想要的东西

我愿意创建一个API,我已经知道API代表什么了。 我使用PHP作为服务器端语言。

但是,我并不真正理解API如何从头开始工作,以及如何让用户在创建后使用API

我的想法和认识

现在我认为通过API,我可以让开发人员访问我的数据库并请求查询。但那我为什么要为它创建一个完整的语言呢?为什么他们不能使用PHP或任何其他服务器端语言?

正如我所看到的,那些为其网站创建API的公司,他们需要注册才能向开发人员提供API密钥。开发人员是否通过此API KEY登录数据库?如果是,那么为什么他们也没有密码呢?如果我知道某人的API KEY,我可以使用它还是什么?

当我读/听XML以某种方式与API有关,但为什么以及如何?

另外请在你的答案中考虑我不想使用任何框架或类似的东西,我想在头开始,所以我想了解它从A到Z是如何工作的。

3 个答案:

答案 0 :(得分:1)

API基本上是允许其他程序员访问您的程序的任何接口。您可能想坐下来思考一下您希望其他人能够做些什么。您通常不希望为其他开发人员提供对数据库的纯访问,原因有几个(希望是显而易见的)。

API密钥通常用于控制对API的访问,这些密钥可以与方法调用一起发送,以确保只有您想要授予访问权限的人才能访问。它们基本上都是密码。 阅读wikipedia entry可能会让事情更加清晰。

答案 1 :(得分:1)

API实际上只是您公开公开的方法。比如说,你有一个博客站点。您希望您的会员能够发布博客条目而无需实际访问您的网站 - 登录,填写表单等。 也许他们想要创建一个Android / iPhone应用程序发布到您的酷博客网站。你可以允许他们这样做。

为此创建API:

    <?php
        function createBlogEntry(memberEmailAddress, memberPassWord, BlogTitle, BlogBody)
        {

           //Here you would usually call an internal (or not publicly exposed) method that
           //contains the actual logic to insert. Like Jim's answer states, you just want 
           //people to be able to performan action in your system, you don't want them to see HOW you do it.

          encapsulatedBlogCreation(memberEmailAddress, memberPassWord, BlogTitle, BlogBody);  


           //This is where API's get tricky. I need to return to the user the result of
           // the save so that my user knows what happens. In my API documentation, I 
           //tellthe user 0 = Created Successfully. If this is a READ operation
           //just return the result. Most modern programming languages also have
           //a way to capture an HTTP response - so dealing with the return is their responsibility

            return 0;
        }
 ?>

一些事情:

  • 在我的API中,我不需要开发人员密钥,我允许用户传入他们的登录凭据。 API密钥执行相同的操作,它唯一地标识请求并将其链接到系统中的用户。
  • 此API不使用XML。这和api一样简单。这可以通过发送HTTP请求来调用,该请求可以使用任何现代编程语言来完成。假设我将上面的代码放在名为blog.php的文件中,并将其放在我的blogsite的根目录中。我会这样称呼:

* HTTP://myblogsite.com/blog.php memberEmailAddress=myEmal@example.com& memberPassWord =为mypass&安培; BLOGTITLE =标题-的-交&安培; BlogBody = the_blog_post_is_here *

您需要了解的一点是,必须要有一个API。您可以公开一种创建博客条目的方法,但如果没有人知道或使用它 - 它就毫无价值。 API需要记录,宣传并为潜在用户提供好处。

答案 2 :(得分:1)

API代表应用程序编程接口,我们可以将其视为一组由可以反复重复使用的函数组成的库。例如,WIN32 API由用于应用程序与操作系统交互的一组函数(用C / C ++开发)组成,该API包括以下库:kernel32.dll,advapi32.dll,gdi32.dll,user32.dll ,comctl32.dll,shell32.dll。

您应该知道其他一些术语,例如toolkit and framework,以便很好地确定您要执行的操作。通常,API是用C / C ++编写的,在大多数情况下,重新使用操作系统API提供的功能。