Back to Examples

GraphQL client - Basic authentication

The graphql:Client can connect to a service that is secured with basic authentication by adding the Authorization: Basic <token> header to each request. The username and password for basic authentication can be specified in the auth field of the graphql:ClientConfiguration. Use this to communicate with the service, which is secured with basic authentication.

import ballerina/graphql;
import ballerina/io;

// User-defined data types to retrieve data from the service.
type ProfileResponse record {|
    *graphql:GenericResponseWithErrors;
    record {|Profile profile;|} data;
|};

type Profile record {|
    string name;
    int age;
|};

public function main() returns error? {
    // Defines the GraphQL client to call the APIs secured with basic authentication.
    graphql:Client graphqlClient = check new ("localhost:9090/graphql",
        auth = {
            username: "ldclakmal",
            password: "ldclakmal@123"
        },
        secureSocket = {
            cert: "../resource/path/to/public.crt"
        }
    );

    // Defines the GraphQL document to be sent to the GraphQL service.
    string document = "{ profile { name, age } }";

    // Execute the document and retrieve the response from the GraphQL service.
    ProfileResponse response = check graphqlClient->execute(document);
    io:println(response.data.profile);
}

Prerequisites

Run the client program by executing the following command.

$ bal run graphql_client_security_basic_auth.bal{"name":"Walter White","age":51}

Related links

PreviousMutual SSL
NextSelf-signed JWT authentication