The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Net::Azure::CognitiveServices::Face::Base - Base class of Cognitive Services APIs

DESCRIPTION

This is a base class for writting wrapper classes of Face APIs more easy.

ATTRIBUTES

access_key

The access key for accessing to Azure Cognitive Services APIs

endpoint

Endpoint URL string

METHODS

path

An interface that returns the endpoint path string.

    my $path_string = $obj->path;

uri

Build an URI object.

    my $uri = $obj->uri('/base/uri', name => 'foobar', page => 3); ## => '/base/uri?name=foobar&page=3'

json

Returns a JSON.pm object.

    my $hash = $obj->json->decode('{"name":"foobar","page":3}'); ## => {name => "foobar", page => 3}

agent

Returns a HTTP::Tiny object.

    my $res = $obj->agent->get('http://example.com');

request

Send a http request, and returns a json content as a hashref.

    my $method = 'POST';
    my $uri = "https://example.com/endpoint/to/face-api?parameter=foo&other=bar";
    my $options = {
        headers => {
            'Content-Type': 'application/json',
        }, 
        content => '{"key": "value", "key2": "value2"}',
    };
    my $req  = [$method, $uri, $options];
    my $hash = $obj->request($req);

build_headers

Build and returns http headers with authorization header.

    my $obj = Net::Azure::CognitiveServices::Face::Base->new(access_key => 'SECRET', ...);
    my @headers = $obj->build_headers('Content-Length' => 60);

build_request

Build and returns a HTTP::Request object.

    ### arguments
    my $path      = '/foo/bar';
    my %param     = (page => 2, name => 'hoge');
    my @headers   = ("X-HTTP-Foobar" => 123);
    my $json_data = {url => 'http://example.com'};
    ### build request object
    my $req = $obj->build_request([$path, %param], [@headers], $json_data);

LICENSE

Copyright (C) ytnobody.

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

AUTHOR

ytnobody <ytnobody@gmail.com>