首页 > 接口规范问题

接口规范问题

接口返回数据一般把整形与浮点型当成字符串输出出来了,你们有对这个类型进行处理吗?
该怎么处理,目前在用Laravel框架。

我的思路是在每个Model那边定义下数据类型,然后在Model输出的时候统一处理,有什么好的方法吗。


首先说我的结果。
不会转换成字符串。
是不是你数据原本就是字符串。

我的php版本: 5.5.34
Laravel Framework version: 5.2.22

<?php

namespace App\Http\Controllers;

class PingController extends Controller
{

    public function ping()
    {
        $a = [1.1, 2];
        return json_encode($a);

        return 'ping is ok';
    }
}

顺便一提,我认为处理的时候应该是在controller返回的时候去统一处理。


这个跟框架无关,PHP是弱类型的,所以返回JSON的时候数据格式很不规范,我目前返回JSON数据的接口都是在最外面手动格式化一下

strval(xxx) //格式化为字符串
intval(xxx) //格式化为整形数字
floatval(xxx) //格式化为浮点型数字
boolval(xxx) //格式化为浮点型

PHP 是弱类型语言,所以出现这种情况比较常见。
一般如果跟 js 交互,或者其他弱类型语言交互,都不会有什么问题。
如果跟 Ios、Android 等强类型的语言就会出现一些问题

1、写个 api 统一处理函数,在输出前统一处理一下,是 int 就用intval 转一下,是 null 的就是 null,是空字符串,就是 "" ,这在强类型中需要注意的。
2、交互一方,Ios、Android 等,最好也做类型验证,可以做类型转化,做容错,不要接口返回的类型不对,程序就崩了。

两方面都最好处理。


谢谢邀请,楼上说的很清晰了,php弱类型,你可以根据你要接受的数据,或者返回给你客户端的数据单独用程序做下处理,保证数据的完整性准确性。你可以定一个类或者方法处理你说的浮点,整型等数据,总之保证接口安全性数据正确性就好了

【热门文章】
【热门文章】