1. Go to this page and download the library: Download sowiso/php-api-sdk 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/ */
$api = new SowisoApi(
configuration: SowisoApiConfiguration::create(), // The configuration is needed here
httpClient: ...,
httpRequestFactory: ...,
httpStreamFactory: ...,
);
$api = new SowisoApi(SowisoApiConfiguration::create()); // The configuration is needed here
$context = SowisoApiContext::create(
data: ['anything-you-want' => 42],
user: 'CURRENT_USER',
);
$response = $api->request($context, '{}'); // The JSON data from the request
$api = new SowisoApi(SowisoApiConfiguration::create()); // The configuration is needed here
$context = SowisoApiContext::create();
try {
$response = $api->request($context, '{}');
} catch (NoBaseUrlException $e) {
// when no API base url is set
} catch (NoApiKeyException $e) {
// when no API key is set
} catch (NoUserException $e) {
// when no API user is set in the context (and the requested endpoint $e) {
// when the API response has invalid JSON data
} catch (MissingDataException $e) {
// when the API request or response is missing
$api = new SowisoApi(SowisoApiConfiguration::create()); // The configuration is needed here
$context = SowisoApiContext::create();
$response = $api->request($context, '{"__endpoint": "ENDPOINT_NAME"}'); // Use any actual endpoint name here, e.g., "play/set"
$api = new SowisoApi(SowisoApiConfiguration::create()); // The configuration is needed here
$api->useCallback(new class extends PlayExerciseSetCallback {
public function onRequest(PlayExerciseSetOnRequestData $data): void {}
public function onResponse(PlayExerciseSetOnResponseData $data): void {}
public function onSuccess(PlayExerciseSetOnSuccessData $data): void {}
public function onFailure(PlayExerciseSetOnFailureData $data): void {}
});
$api = new SowisoApi(SowisoApiConfiguration::create()); // The configuration is needed here
$api->useCallback(new class extends PlayExerciseCallback {
public function onRequest(PlayExerciseOnRequestData $data): void {}
public function onResponse(PlayExerciseOnResponseData $data): void {}
public function onSuccess(PlayExerciseOnSuccessData $data): void {}
public function onFailure(PlayExerciseOnFailureData $data): void {}
});
$api = new SowisoApi(SowisoApiConfiguration::create()); // The configuration is needed here
$api->useCallback(new class extends ReplayExerciseTryCallback {
public function onRequest(ReplayExerciseTryOnRequestData $data): void {}
public function onResponse(ReplayExerciseTryOnResponseData $data): void {}
public function onSuccess(ReplayExerciseTryOnSuccessData $data): void {}
public function onFailure(ReplayExerciseTryOnFailureData $data): void {}
});
$api = new SowisoApi(SowisoApiConfiguration::create()); // The configuration is needed here
$api->useCallback(new class extends EvaluateAnswerCallback {
public function onRequest(EvaluateAnswerOnRequestData $data): void {}
public function onResponse(EvaluateAnswerOnResponseData $data): void {}
public function onSuccess(EvaluateAnswerOnSuccessData $data): void {}
public function onFailure(EvaluateAnswerOnFailureData $data): void {}
});
$api = new SowisoApi(SowisoApiConfiguration::create()); // The configuration is needed here
$api->useCallback(new class extends PlayHintCallback {
public function onRequest(PlayHintOnRequestData $data): void {}
public function onResponse(PlayHintOnResponseData $data): void {}
public function onSuccess(PlayHintOnSuccessData $data): void {}
public function onFailure(PlayHintOnFailureData $data): void {}
});
$api = new SowisoApi(SowisoApiConfiguration::create()); // The configuration is needed here
$api->useCallback(new class extends PlaySolutionCallback {
public function onRequest(PlaySolutionOnRequestData $data): void {}
public function onResponse(PlaySolutionOnResponseData $data): void {}
public function onSuccess(PlaySolutionrOnSuccessData $data): void {}
public function onFailure(PlaySolutionOnFailureData $data): void {}
});
$api = new SowisoApi(SowisoApiConfiguration::create()); // The configuration is needed here
$api->useCallback(new class extends StoreAnswerCallback {
public function onRequest(StoreAnswerOnRequestData $data): void {}
public function onResponse(StoreAnswerOnResponseData $data): void {}
public function onSuccess(StoreAnswerOnSuccessData $data): void {}
public function onFailure(StoreAnswerOnFailureData $data): void {}
});
$api = new SowisoApi(SowisoApiConfiguration::create()); // The configuration is needed here
$api->useRequestHandler(new class extends PlayExerciseSetRequestHandler {
public function handle(SowisoApiContext $context, SowisoApiPayload $payload, PlayExerciseSetRequest $request): ?array
{
return null; // Or whatever should be the response
}
});
$api = new SowisoApi(SowisoApiConfiguration::create()); // The configuration is needed here
$api->useRequestHandler(new class extends PlayExerciseRequestHandler {
public function handle(SowisoApiContext $context, SowisoApiPayload $payload, PlayExerciseRequest $request): ?array
{
return null; // Or whatever should be the response
}
});
$api = new SowisoApi(SowisoApiConfiguration::create()); // The configuration is needed here
$api->useRequestHandler(new class extends ReplayExerciseTryRequestHandler {
public function handle(SowisoApiContext $context, SowisoApiPayload $payload, ReplayExerciseTryRequest $request): ?array
{
return null; // Or whatever should be the response
}
});
$api = new SowisoApi(SowisoApiConfiguration::create()); // The configuration is needed here
$api->useRequestHandler(new class extends EvaluateAnswerRequestHandler {
public function handle(SowisoApiContext $context, SowisoApiPayload $payload, EvaluateAnswerRequest $request): ?array
{
return null; // Or whatever should be the response
}
});
$api = new SowisoApi(SowisoApiConfiguration::create()); // The configuration is needed here
$api->useRequestHandler(new class extends PlayHintRequestHandler {
public function handle(SowisoApiContext $context, SowisoApiPayload $payload, PlayHintRequest $request): ?array
{
return null; // Or whatever should be the response
}
});
$api = new SowisoApi(SowisoApiConfiguration::create()); // The configuration is needed here
$api->useRequestHandler(new class extends PlaySolutionRequestHandler {
public function handle(SowisoApiContext $context, SowisoApiPayload $payload, PlaySolutionRequest $request): ?array
{
return null; // Or whatever should be the response
}
});
$api = new SowisoApi(SowisoApiConfiguration::create()); // The configuration is needed here
$api->useRequestHandler(new class extends StoreAnswerRequestHandler {
public function handle(SowisoApiContext $context, SowisoApiPayload $payload, StoreAnswerRequest $request): ?array
{
return null; // Or whatever should be the response
}
});
$api = new SowisoApi(SowisoApiConfiguration::create()); // The configuration is needed here
$api->useHook(new class extends DataVerificationHook {
public function verifyPlayExerciseSetRequest(PlayExerciseSetOnRequestData $data): void {}
public function verifyPlayExerciseRequest(PlayExerciseOnRequestData $data): void {}
public function verifyReplayExerciseTryRequest(ReplayExerciseTryOnRequestData $data): void {}
public function verifyEvaluateAnswerRequest(EvaluateAnswerOnRequestData $data): void {}
public function verifyPlayHintRequest(PlayHintOnRequestData $data): void {}
public function verifyPlaySolutionRequest(PlaySolutionOnRequestData $data): void {}
public function verifyStoreAnswerRequest(StoreAnswerOnRequestData $data): void {}
});
$api = new SowisoApi(SowisoApiConfiguration::create()); // The configuration is needed here
$api->useHook(new class extends DataVerificationHook {
public function verifyPlayExerciseSetRequest(PlayExerciseSetOnRequestData $data): void {
if ($data->getRequest()->usesTryId()) {
$this->verifyTryId($data->getContext(), $data->getPayload(), $data->getRequest()->getTryId());
} else {
// $this->verifySetId($data->getRequest()->getSetId());
}
// $this->verifyView($data->getRequest()->getView());
}
public function verifyPlayExerciseRequest(PlayExerciseOnRequestData $data): void {
$this->verifyTryId($data->getContext(), $data->getPayload(), $data->getRequest()->getTryId());
// $this->verifyView($data->getRequest()->getView());
}
public function verifyReplayExerciseTryRequest(ReplayExerciseTryOnRequestData $data): void {
$this->verifyTryId($data->getContext(), $data->getPayload(), $data->getRequest()->getTryId());
}
public function verifyEvaluateAnswerRequest(EvaluateAnswerOnRequestData $data): void {
$this->verifyTryId($data->getContext(), $data->getPayload(), $data->getRequest()->getTryId());
}
public function verifyPlayHintRequest(PlayHintOnRequestData $data): void {
$this->verifyTryId($data->getContext(), $data->getPayload(), $data->getRequest()->getTryId());
}
public function verifyPlaySolutionRequest(PlaySolutionOnRequestData $data): void {
$this->verifyTryId($data->getContext(), $data->getPayload(), $data->getRequest()->getTryId());
}
public function verifyStoreAnswerRequest(StoreAnswerOnRequestData $data): void {
$this->verifyTryId($data->getContext(), $data->getPayload(), $data->getRequest()->getTryId());
}
private function verifyTryId(SowisoApiContext $context, SowisoApiPayload $payload, int $tryId): void {
// ...
}
});
$api = new SowisoApi(SowisoApiConfiguration::create()); // The configuration is needed here
$api->useHook(new class extends DataCaptureHook {
public function onRegisterExerciseSet(OnRegisterExerciseSetData $data): void {}
});
$api = new SowisoApi(SowisoApiConfiguration::create()); // The configuration is needed here
$api->useHook(new class extends ScoreCaptureHook {
public function onScore(OnScoreData $data): void {}
});
$api = new SowisoApi(SowisoApiConfiguration::create()); // The configuration is needed here
$api->useHook(new class extends TestModeHook {
public function shouldExerciseSetBePlayedInTestMode(ShouldExerciseSetBePlayedInTestModeData $data): bool {}
public function shouldExerciseTryBePlayedInTestMode(ShouldExerciseTryBePlayedInTestModeData $data): bool {}
public function shouldExerciseTryBeEvaluatedInTestMode(ShouldExerciseTryBeEvaluatedInTestModeData $data): bool {}
});
bash
composer
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.