What is @azure/core-client?
The @azure/core-client package is designed to be a foundational library for all Azure SDK client libraries. It provides the core functionalities such as HTTP pipeline, serialization, and deserialization of responses, handling of authentication protocols, and error handling. It is intended to streamline the development of Azure SDKs by providing common functionalities needed for interacting with Azure services.
What are @azure/core-client's main functionalities?
HTTP Pipeline
This feature allows developers to customize the HTTP pipeline used for sending requests to Azure services. It includes adding custom policies, using a default HTTP client, and configuring the pipeline with various options.
const { PipelinePolicy, createDefaultHttpClient, createPipelineFromOptions } = require('@azure/core-client');
const httpClient = createDefaultHttpClient();
const pipeline = createPipelineFromOptions({});
pipeline.addPolicy(somePolicy);
const client = new SomeServiceClient(url, credential, { httpClient, pipeline });
Authentication
This feature demonstrates how to use the @azure/identity package with @azure/core-client to authenticate requests to Azure services. It simplifies the process of using Azure Active Directory tokens for authentication.
const { TokenCredential, DefaultAzureCredential } = require('@azure/identity');
const { SomeServiceClient } = require('@azure/some-service');
const credential = new DefaultAzureCredential();
const client = new SomeServiceClient('<your-service-endpoint>', credential);
Serialization and Deserialization
This feature is about serializing request payloads before sending them to Azure services and deserializing responses. It ensures that data is correctly formatted for network transmission and subsequent processing.
const { serialize, deserialize } = require('@azure/core-client');
const model = { name: 'Azure SDK' };
const serializedModel = serialize(model);
const deserializedModel = deserialize(serializedModel);
Other packages similar to @azure/core-client
axios
Axios is a popular HTTP client for the browser and node.js. While it provides features for making HTTP requests and handling responses, it lacks the Azure-specific integrations and authentication protocols that @azure/core-client offers.
node-fetch
node-fetch is a lightweight module that brings window.fetch to Node.js. Similar to axios, it allows for making HTTP requests but does not include the Azure-specific features or the extensive HTTP pipeline customization options available in @azure/core-client.
request
Request is a simplified HTTP request client for Node.js, but it has been deprecated. While it was widely used for making HTTP requests, it does not offer the Azure service integrations or the authentication and pipeline customization capabilities of @azure/core-client.
Azure Core Service client library for JavaScript (Experimental)
This library is primarily intended to be used in code generated by AutoRest and autorest.typescript
.
Getting started
Requirements
Installation
This package is primarily used in generated code and not meant to be consumed directly by end users.
Key concepts
TODO: talk about OperationSpec?
Examples
Examples can be found in the samples
folder.
Next steps
TODO: need some good content here
Troubleshooting
If you run into issues while using this library, please feel free to file an issue.
Contributing
If you'd like to contribute to this library, please read the contributing guide to learn more about how to build and test the code.