SDKを使用した各メータリングAPIのLaravel実装サンプルとメータリングAPIを利用した機能の一例を記載します。
それぞれのAPIの詳細はAPIドキュメントをご確認ください。
Laravel実装サンプル
指定した日付のメータリングユニットカウントを取得
APIドキュメントユースケース
テナント向けに使用量を見せたい場合などに使用してください。
実装サンプル
- PHP
- Go
- Python
- Java
- C#(.Net8)
- C#(.Netfw4.8)
/**
* 指定した日付のメータリングユニットカウントを取得
*
* @param string $tenantId テナントID
* @param string $meteringUnitName メータリングユニット名
* @param string $date 日付 yyyy-mm-dd形式
* @return array
*/
public function getCountOfSpecifiedDate(string $tenantId, string $meteringUnitName, string $date)
{
$client = new \AntiPatternInc\Saasus\Api\Client();
$pricingApi = $client->getPricingClient();
$unitCount = $pricingApi->getMeteringUnitDateCountByTenantIdAndUnitNameAndDate(
$tenantId,
$meteringUnitName,
$date
);
return [
'count' => $unitCount->getCount(),
'date' => $unitCount->getDate(),
'meteringUnitName' => $unitCount->getMeteringUnitName(),
];
}
// 指定した日付のメータリングユニットカウントを取得
// tenantId: テナントID
// unit: メータリングユニット名
// date: yyyy-MM-dd形式の日付
// returns: {"count": int, "date": string, "meteringUnitName": string}
func getCountOfSpecifiedDate(c echo.Context) error {
tenantId := c.Param("tenantId")
unit := c.Param("unit")
date := c.Param("date")
resp, err := pricingClient.
GetMeteringUnitDateCountByTenantIdAndUnitNameAndDateWithResponse(
c.Request().Context(), tenantId, unit, date,
)
if err != nil || resp.JSON200 == nil {
return c.String(http.StatusInternalServerError, "pricing API error")
}
return c.JSON(http.StatusOK, echo.Map{
"count": resp.JSON200.Count,
"date": resp.JSON200.Date,
"meteringUnitName": resp.JSON200.MeteringUnitName,
})
}
# 指定した日付のメータリングユニットカウントを取得
# tenant_id: テナントID
# unit: メータリングユニット名
# date: yyyy-MM-dd形式の日付
# returns: {"count": int, "date": str, "meteringUnitName": str}
def get_count_of_specified_date(tenant_id: str, unit: str, date: str) -> Dict:
metering_api = MeteringApi(api_client=pricing_api_client)
cnt = metering_api.get_metering_unit_date_count_by_tenant_id_and_unit_name_and_date(
tenant_id=tenant_id,
metering_unit_name=unit,
var_date=date,
)
return {
"count": cnt.count,
"date": cnt.var_date,
"meteringUnitName": cnt.metering_unit_name,
}