PHP code example of hugomarques62 / juno-sdk-php-laravel
1. Go to this page and download the library: Download hugomarques62/juno-sdk-php-laravel library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
hugomarques62 / juno-sdk-php-laravel example snippets
use Juno;
$response = Juno::request($requestObject, $resourceToken);
use Jetimob\Juno\Lib\Http\Method;
use Jetimob\Juno\Lib\Http\Request;
use Jetimob\Juno\Lib\Http\BodyType;
class DocsCustomRequest extends Request
{
/** @var string $id pathParam */
public string $id;
public string $param1;
public string $param2;
/**
* @var string $responseClass overrides the response serialization class.
*
* Every successful request will have its response cast to an instance of the class defined by
* this property.
*
* If the response class has the same name with 'Request' exchanged with 'Response', you can leave
* don't need to set this property.
*/
protected string $responseClass = DocsCustomResponse::class;
/**
* @var string $bodyType overrides the request body type
* @see http://docs.guzzlephp.org/en/stable/request-options.html
*/
protected string $bodyType = BodyType::JSON;
/** @var string[] $bodySchema specifies which properties of the current instance should be sent with the body */
protected array $bodySchema = [
'param1',
'param2',
]
/**
* Specifies the request method
*/
protected function method(): string
{
return Method::GET;
}
/**
* Specifies the endpoint to be merged with base_uri defined in the configuration file.
* Anything inside brackets {} will trigger the request to update the matched identifier with this
* instance's property with the same name. e.g.: the {id} below will be exchanged to the value of
* $this->id;
*/
protected function urn(): string
{
return 'docs/{id}';
}
}
use Jetimob\Juno\Lib\Traits\Serializable;
class OddResponseObject
{
use Serializable;
public string $property1;
public int $property2;
}
use Jetimob\Juno\Lib\Http\Response;
/**
* All properties defined in this class MUST match the object keys defined in Juno's API response.
*
* Complex objects can be typed so that the SDK can cast an instance and define this instance property
* ($param in the class example below)
*
* If there is data inside an '_embedded' key, you MUST override the initComplexObjects function and
* use the helper functions of Response class.
*
* @see https://dev.juno.com.br/api/v2
*/
class DocsCustomResponse extends Response
{
protected string $id;
protected int $value;
protected OddResponseObject $param;
/** @var OddResponseObject $embeddedData */
protected array $embeddedData;
/**
* This function is mainly used to deserialize embedded data.
*
* The first parameter given to deserializeEmbeddedArray specifies in which key, inside the
* _embedded object, is the data that we are trying to deserialize.
*/
public function initComplexObjects(): void
{
$this->embeddedData = $this->deserializeEmbeddedArray(
'propertyInsideEmbedded', // key name inside _embedded
OddResponseObject::class, // deserialize each element to the given class
[], // default value if the key is non existent
);
}
[... getters]
}
$requestData = new DocsCustomRequest();
$requestData->id = 'XXXXXXXXXXXXXXXXXXXXXXXXX';
$requestData->param1 = 'XXXXXXXXXXXXXXXXXXXXXXXXX';
$requestData->param2 = 'XXXXXXXXXXXXXXXXXXXXXXXXX';
// error handling ignored for example readability
/** @var DocsCustomResponse $response */
$response = Juno::request($requestData, $resourceToken);
// all properties are initialized and can be easily accessed:
$response->getParam()->property1;
sh
$ php artisan juno:install
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.