升级请求实际上是否需要Developer API Key?

时间:2017-06-16 04:24:53

标签: google-maps google-maps-api-3 elevation google-elevation-api

在Google官方文档中提及here,需要开发人员API密钥,这意味着每个请求都会计入您的(开发人员)配额。

事实上,在Google提供的示例中,需要在请求中指定开发人员API密钥:

public class User
{
    public int Id { get; set; }
}

public class Card
{
    public int Id { get; set; }
    public string Name { get; set; }

    [ForeignKey("CreatedBy")]
    public int UserId { get; set; }

    public User CreatedBy { get; set; }
}

context.Cards.Add(new Card
{
    Name = "Card of Water",
    UserId = CurrentUser.Id,
    CreatedBy = CurrentUser
});
context.SaveChanges();

但是,我测试了上述请求,并删除了https://maps.googleapis.com/maps/api/elevation/json?locations=39.7391536,-104.9847034|36.455556,-116.866667&key=YOUR_API_KEY ,我仍然可以得到正确的答案!即:这仍然有效!

&key=YOUR_API_KEY

那么,提升请求可以在没有开发人员API密钥的情况下工作吗?如果是,这意味着可以在一天内产生数百万的提升请求并且不会收费,我是对的吗?

2 个答案:

答案 0 :(得分:1)

不同之处在于如何应用使用配额。

如果您在请求中应用API密钥,则将根据您的项目计算配额。

如果您未在请求中应用API密钥,则会根据您的IP地址计算配额。如果您与其他人共享您的公共IP地址,则每天的请求少于2500个,因此在这种情况下,API密钥是更好的选择。

此外,Google可以在将来某个时候弃用无密钥访问权限。例如,这发生在一年前使用Maps JavaScript API。您可以阅读以下博文作为参考:

https://maps-apis.googleblog.com/2016/06/building-for-scale-updates-to-google.html

我希望我的回答能澄清你的疑虑。

答案 1 :(得分:-1)

在我经验丰富的api密钥中,要确定你的项目,有几个我认为google api不需要api密钥但使用api密钥安全是你的应用程序所以如果你使用它更好

了解更多详情,请查看此链接

https://cloud.google.com/endpoints/docs/when-why-api-key