首页>>后端>>Golang->api接口实例代码?

api接口实例代码?

时间:2023-12-12 本站 点击:2

如何使用百度天气预报API接口

百度API Key申请地址:

创建应用猛巧 如图: 

提交后得到API Key 如图:

接口实例:?location=南昌output=jsonak=你的API Keymcode=你的数字签名SHA1;com.example.administrator.jsontest(包名)

接口参数说明

参数类型

参数名称

是否必须

具体描述

String    location    true    输入城市名或经纬度,城市名如北京或者131,经纬度格式为lng,lat坐标,如:location=116.305145,39.982368;全国值为all,返回省会城市自治区,港澳台天气情况多城市天气预报中间用“|”分隔,如:location=116.305145,39.982368|123.342323,36238945|...  

String    output    false    输出的数据格式,默认为xml格式,当output设置为json时,输出的为json数据格式  

String    coord_type    false    请求参数坐标类型,默认为gcj02经纬度坐标枝冲键。允许的值为bd09ll、bd09mc、gcj02、wgs84;  

返回的JSON数据

{

   "error":0,

   "status":"success",

   "date":"2016-03-05",

   "results":[

       {

           "currentCity":"北京",

           "pm25":"144",

           "index":[

               {

                   "title":"穿衣",

                   "zs":"较冷",

                   "tipt":"穿衣指数",

                   "des":"建议着厚外套加毛衣等服装。年老体弱者宜着大衣、呢外套加羊毛衫。"},

               {

                   "title":"洗车",

                   "zs":"不宜",

                   "tipt":"洗车指数",

                   "des":"不宜洗车,未来24小时内有扬沙或浮尘,如果在此期间洗车,极易很快蒙上新的灰尘。"},

               {

                   "title":"旅游",

                   "zs":"一般",

                   "tipt":"旅游指数",

                   "des":"风稍大,扬沙或浮尘天气对判裤能见度和空气质量都会有些影响,出行请注意交通安全和采取适当的防尘措施。"},

               {

                   "title":"感冒",

                   "zs":"易发",

                   "tipt":"感冒指数",

                   "des":"昼夜温差大,风力较强,易发生感冒,请注意适当增减衣服,加强自我防护避免感冒。"},

               {

                   "title":"运动",

                   "zs":"较不宜",

                   "tipt":"运动指数",

                   "des":"有扬沙或浮尘,建议适当停止户外运动,选择在室内进行运动,以避免吸入更多沙尘,有损健康。"},

               {

                   "title":"紫外线强度",

                   "zs":"最弱",

                   "tipt":"紫外线强度指数",

                   "des":"属弱紫外线辐射天气,无需特别防护。若长期在户外,建议涂擦SPF在8-12之间的防晒护肤品。"}

          ],

 "weather_data":[

             {

                 "date":"周六 03月05日 (实时:12℃)",              "dayPictureUrl":"",

   "nightPictureUrl":"",

                 "weather":"浮尘转晴",

                 "wind":"北风4-5级",

                 "temperature":"12 ~ -1℃"},

 {

                 "date":"周日",

"dayPictureUrl":"",

"nightPictureUrl":"",

                 "weather":"多云",

                 "wind":"微风",

                 "temperature":"10 ~ -3℃"},

 {

                 "date":"周一",            "dayPictureUrl":"",

"nightPictureUrl":"",

                 "weather":"多云转阴",

                 "wind":"微风",

                 "temperature":"13 ~ 2℃"},

 {

                 "date":"周二",                "dayPictureUrl":"",

"nightPictureUrl":"",

             "weather":"阴转多云",

             "wind":"北风3-4级",

             "temperature":"6 ~ -1℃"}

 ]}]}

3.  我们来写个demo,代码如下:

package com.example.administrator.jsontest;

public class MainActivity extends Activity {

   private Button button;

   private TextView textView;

   private Handler handler = new Handler() {

       @Override

       public void handleMessage(Message msg) {

           switch (msg.what) {

               case 0:

                   String re = (String) msg.obj;

                   textView.setText(re);

                   break;

           }

       }

   };

   @Override

   protected void onCreate(Bundle savedInstanceState) {

       super.onCreate(savedInstanceState);

       setContentView(R.layout.activity_main);

       button = (Button) findViewById(R.id.button);

       textView = (TextView) findViewById(R.id.textView);

       button.setOnClickListener(new View.OnClickListener() {

           @Override

           public void onClick(View v) {

               Log.i("TAG", "点击了Button");

               sendRequestWithHttpClient();

           }

       });

   }

   private void sendRequestWithHttpClient() {

       new Thread(new Runnable() {

           @Override

           public void run() {

               HttpURLConnection connection = null;

               try {

                   URL url = new URL("南昌output=jsonak=8ixCCFzlBB617YX7tONI2P5Bmcode=1C:6B:42:33:E8:A6:DC:A2:11:6E:26:EC:84:BD:42:E3:8E:6B:57:9A;com.example.administrator.jsontest");

                   connection = (HttpURLConnection) url.openConnection();

                   connection.setRequestMethod("GET");

                   connection.setConnectTimeout(5000);

                   connection.setReadTimeout(5000);

                   InputStream in = connection.getInputStream();

                   BufferedReader reader = new BufferedReader(new InputStreamReader(in));

                   StringBuilder response = new StringBuilder();

                   String line;

                   while ((line = reader.readLine()) != null) {

                       response.append(line);

                   }

                   Log.i("TAG", response.toString());                    parseJSONObjectOrJSONArray(response.toString());

               } catch (MalformedURLException e) {

                   e.printStackTrace();

               } catch (IOException e) {

                   e.printStackTrace();

               }

           }

       }).start();

   }

   //解析JSON数据

   private void parseJSONObjectOrJSONArray(String jsonData) {

       try {

           String count = "";

           JSONObject jsonObject = new JSONObject(jsonData);

           JSONArray jsonArray = jsonObject.getJSONArray("results");

           if (jsonArray.length() 0) {

               JSONObject object = jsonArray.getJSONObject(0);

               String city = object.optString("currentCity");

               JSONArray array = object.getJSONArray("weather_data");

               for (int i = 0; i array.length(); i++) {

                   JSONObject jsonObject1 = array.getJSONObject(i);

                   String dateDay = jsonObject1.optString("date");

                   String weather = jsonObject1.optString("weather");

                   String wind = jsonObject1.optString("wind");

                   String temperature = jsonObject1.optString("temperature");

                   count =count +"\n"+ dateDay + " " + weather + " " + wind + " " + temperature;

                   Log.i("AAA",count);

               }

               Message message = new Message();

               message.what = 0;

               message.obj = count;

               handler.sendMessage(message);

           }

       } catch (JSONException e) {

           e.printStackTrace();

       }

   }

}

4. 运行结果如下:

php如何开发API接口

比如一个自定义函数:function test(){echo ‘hello world’;}就可以叫做 api。api 既可以是单个的函数,也禅拦可以是封装在类里的方法,当然它们也是程序代码。开发一个 api 的流程可以很简单,也可以很复杂,视具体的编程任务而决定,并没有特定的规则。比如,你需要为自己建立一个常用的函数库,命名为 my.lib.php然后把你自己编写的自定义函数,全部写在这个文件里面,那么,你就拥有了自己的api。开发贺核胡的时候,只需要引入 my.lib.php,你就可以调用自己的 api 了。这是一个比较简单的例子。稍微复杂一点的,你可以把函数封装在类里面,方便继承和重用,还可以根据函数名称做一些程序设计,这个一句话说不清楚,给一个简单的例子吧:class mylib{function showmy(){echo ‘这是我的一个类方法’;}}调用的时候,先要实例化类,氏吵然后再调用方法。再复杂一点的就是使用类接口,区别就是接口里面定义的只是方法原型,而你需要通过具体的类来实现接口中的函数,具体请参考 php 手册

怎么写api接口

一些刚开始写接口文档的服务端同学,很容易按着代码的思路去编写接口文档,这让客户端同学或者是服务对接方技术人员经常吐槽,看不懂接口文档。这篇文章提供一个常规接口文档的编写方法,给大家参考。

推荐使用的是docway 写接口文档,方便保存和共享,支持导出PDF MARKDOWN,支持团队项目管理。

一、请求参数

1. 请求方法

GET

用于获取数携雀蔽据

POST

用于更新数据,可与PUT互换,语义上PUT支持幂等

PUT

用于新增数据,可与POST互换,语义上PUT支持幂等

DELETE

用于删除数据

其他

其他的请求方法在一般的接口中很少使用。如:PATCH HEAD OPTIONS

2. URL

url表示了接口的请求路径。路径中可以包含参数,称为地址参数,如**/user/{id}**,其中id作为一个参数。

3. HTTP Header

HTTP Header用于此次请求的基础信息,在接口文档中以K-V方式展示,其中Content-Type则是一个非常必要的header,它描述的请求体的数据类型。

常用的content-type:

application/x-www-form-urlencoded

请求参数使用“”符号连接。

application/json

内容为json格式

application/xml

内容为xml格式

multipart/form-data

内容为多个数据组成,有分隔符隔开

4. HTTP Body

描述http body,依赖于body中具体的数据类型。如果body中的数据是对象类型。则需要描述对象中字段的名称、类型、长度、不能为空、默认值、说明。以表格的方式来表达最好。

示例:

二、响应参数

1. 响应 HTTP Body

响应body同请求body一样,需要描述请清除数据的类型。

另外,如果服务会根据不同的http status code 返回岁缓不同的数据结构, 也需要针对不同的http status code对内容进行描述。

三、接口说明

说明接口的应用场辩州景,特别的注意点,比如,接口是否幂等、处理是同步方式还是异步方式等。

四、示例

上个示例(重点都用红笔圈出来,记牢了):

五、接口工具

推荐使用的是(以前叫小幺鸡) 写接口文档,方便保存和共享,支持导出PDF MARKDOWN,支持团队项目管理。

php中的API接口怎么写 ?

以我目前的能力没散早法理解这个问题。但我举个例子,可能并不是你想要的答案,但没准可以提醒一下。我们用GOOGLE MAP API (开源)的时候,会引用一个类似接口的方法,方法有很多态掘岁参数可以设置。比如这是个引用地图的方法,它的里面写了很多完整的方法,我这里就不放出来了,但是我举得例子是参数传递在最上面的initialize () (这里我们暂时当作接口)方法上,我们可以传递interface_zoom即缩放大小,interface_lati,interface_lngi就是经纬度等等参数,这些参数可以由我们自己处理,无论是从database还是什么其他方法读取还是怎么运算,然后call这个initialize方法带指定参数就可以了,具体里面如何操作的地图,如何生成的地图,我们就不管了。接口就是我们看到日常生活中的插座,它规定好了规格,是几项的插头,我们就做成几项的插头,具体里面什么线路我们不管。方法中规定了什么类型的参数,我们就传什么类型的参数,具体里面有什么算法我们不管。个人最自白的解释,与官方有出入。

var map;

var infoWindow;

function initialize(interface_zoom,interface_lati,interface_lngi) {

var mapDiv = document.getElementById('帆睁map-canvas');

map = new google.maps.Map(mapDiv, {

center: new google.maps.LatLng(interface_lati, interface_lngi),

zoom: interface_zoom,

mapTypeId: google.maps.MapTypeId.ROADMAP

});

......

......


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:/Golang/25552.html