filippo-toso/api-sdk 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

filippo-toso/api-sdk

Composer 安装命令:

composer require filippo-toso/api-sdk

包简介

A lightweight SDK to develop REST API clients

README 文档

README

A lightweight SDK to develop REST API clients

Installing

Use Composer to install it:

composer require filippo-toso/api-sdk

How does it work?

The best way is to start with an example. Let's build an SDK for Windy.com APIs.

First we build the main class:

use FilippoToso\Api\Sdk\Sdk;

class Windy extends Sdk
{
    public function list(): ListEndpoint
    {
        return new ListEndpoint($this);
    }
}

The Windy exposes a list() method that implements the https://api.windy.com/webcams/docs#/list calls. You can implement how many endpoints you want (i.e. map).

Then let's write the code to call the endpoint:

use FilippoToso\Api\Sdk\Endpoint;
use FilippoToso\Api\Sdk\Support\Response;

class ListEndpoint extends Endpoint
{
    public function nearby($latitude, $longitude, $radius = 10): Response
    {
        return $this->get('/list/nearby=' . $latitude . ',' . $longitude . ',' . $radius . '?' . http_build_query($this->params([
            'show' => 'webcams:location,image',
        ])));
    }
}

The ListEndpoint exposes the nearby() methods. An endpoint class can expose as many methods as you need (i.e. one for each REST call).

Finally, let's call the service:

use FilippoToso\Api\Sdk\Support\Options;

include(__DIR__ . '/../vendor/autoload.php');

include(__DIR__ . '/ListEndpoint.php');
include(__DIR__ . '/Windy.php');

$options = new Options([
    'uri' => 'https://api.windy.com/api/webcams/v2',
    'headers' => [
        'x-windy-key' => '...',
        'Content-Type' => 'application/json',
        'Accept' => 'application/json',
    ],
]);

$windy = new Windy($options);

$response = $windy->list()->nearby(45.9035644, 13.3038818, 10);

print_r($response->body());

The Options class allows you to specify multiple options (i.e. a production Vs. development url). Check the sources for more information on all the options available.

That's it. A flexible and clean implementation of an API SDK.

Source of inspiration

This SDK is heavily inspired by this article series:

https://madewithlove.com/blog/software-engineering/building-an-sdk-with-php-part-1/

filippo-toso/api-sdk 适用场景与选型建议

filippo-toso/api-sdk 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 1.3k 次下载、GitHub Stars 达 0, 最近一次更新时间为 2023 年 01 月 14 日, 在 PHP 生态内属于活跃度较高的组件。

我们在过去多个企业项目中使用过 filippo-toso/api-sdk 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 filippo-toso/api-sdk 我们能提供哪些服务?
定制开发 / 二次开发

基于 filippo-toso/api-sdk 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 1.3k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 4
  • 依赖项目数: 3
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2023-01-14