Skip to content

Commit

Permalink
tsp, fix wire name on header/query/path (#2848)
Browse files Browse the repository at this point in the history
  • Loading branch information
weidongxu-microsoft authored Jul 3, 2024
1 parent d14a9d2 commit 6342400
Show file tree
Hide file tree
Showing 22 changed files with 1,343 additions and 91 deletions.
2 changes: 1 addition & 1 deletion typespec-extension/changelog.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Release History

## 0.17.1 (Unreleased)
## 0.17.1 (2024-07-03)

Compatible with compiler 0.57.

Expand Down
4 changes: 2 additions & 2 deletions typespec-extension/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion typespec-extension/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@azure-tools/typespec-java",
"version": "0.17.0",
"version": "0.17.1",
"description": "TypeSpec library for emitting Java client from the TypeSpec REST protocol binding",
"keywords": [
"TypeSpec"
Expand Down
17 changes: 15 additions & 2 deletions typespec-extension/src/code-model-builder.ts
Original file line number Diff line number Diff line change
Expand Up @@ -111,12 +111,17 @@ import {
HttpStatusCodesEntry,
Visibility,
getAuthentication,
getHeaderFieldName,
getHeaderFieldOptions,
getHttpOperation,
getPathParamName,
getQueryParamName,
getQueryParamOptions,
getServers,
getStatusCodeDescription,
isHeader,
isPathParam,
isQueryParam,
} from "@typespec/http";
import { getResourceOperation, getSegment } from "@typespec/rest";
import { Version, getAddedOnVersions, getVersion } from "@typespec/versioning";
Expand Down Expand Up @@ -2256,8 +2261,16 @@ export class CodeModelBuilder {
}

private getSerializedName(target: ModelProperty): string {
// TODO: currently this is only for JSON
return getWireName(this.sdkContext, target);
if (isHeader(this.program, target)) {
return getHeaderFieldName(this.program, target);
} else if (isQueryParam(this.program, target)) {
return getQueryParamName(this.program, target);
} else if (isPathParam(this.program, target)) {
return getPathParamName(this.program, target);
} else {
// TODO: currently this is only for JSON
return getWireName(this.sdkContext, target);
}
}

private isReadOnly(target: SdkModelPropertyType): boolean {
Expand Down
4 changes: 2 additions & 2 deletions typespec-tests/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@
"testserver-run": "npx cadl-ranch serve ./node_modules/@azure-tools/cadl-ranch-specs/http --coverageFile ./cadl-ranch-coverage-java.json"
},
"dependencies": {
"@azure-tools/cadl-ranch-specs": "0.34.1",
"@azure-tools/typespec-java": "file:/../typespec-extension/azure-tools-typespec-java-0.17.0.tgz"
"@azure-tools/cadl-ranch-specs": "0.34.3",
"@azure-tools/typespec-java": "file:/../typespec-extension/azure-tools-typespec-java-0.17.1.tgz"
},
"devDependencies": {
"@typespec/prettier-plugin-typespec": "~0.57.0",
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,189 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
// Code generated by Microsoft (R) TypeSpec Code Generator.

package com._specs_.azure.core.model;

import com._specs_.azure.core.model.implementation.AzureCoreEmbeddingVectorsImpl;
import com._specs_.azure.core.model.models.AzureEmbeddingModel;
import com.azure.core.annotation.Generated;
import com.azure.core.annotation.ReturnType;
import com.azure.core.annotation.ServiceClient;
import com.azure.core.annotation.ServiceMethod;
import com.azure.core.exception.ClientAuthenticationException;
import com.azure.core.exception.HttpResponseException;
import com.azure.core.exception.ResourceModifiedException;
import com.azure.core.exception.ResourceNotFoundException;
import com.azure.core.http.rest.RequestOptions;
import com.azure.core.http.rest.Response;
import com.azure.core.util.BinaryData;
import com.azure.core.util.FluxUtil;
import com.azure.core.util.serializer.TypeReference;
import java.util.List;
import reactor.core.publisher.Mono;

/**
* Initializes a new instance of the asynchronous ModelClient type.
*/
@ServiceClient(builder = ModelClientBuilder.class, isAsync = true)
public final class ModelAsyncClient {
@Generated
private final AzureCoreEmbeddingVectorsImpl serviceClient;

/**
* Initializes an instance of ModelAsyncClient class.
*
* @param serviceClient the service client implementation.
*/
@Generated
ModelAsyncClient(AzureCoreEmbeddingVectorsImpl serviceClient) {
this.serviceClient = serviceClient;
}

/**
* get an embedding vector.
* <p><strong>Response Body Schema</strong></p>
*
* <pre>{@code
* [
* int (Required)
* ]
* }</pre>
*
* @param requestOptions The options to configure the HTTP request before HTTP client sends it.
* @throws HttpResponseException thrown if the request is rejected by server.
* @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401.
* @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404.
* @throws ResourceModifiedException thrown if the request is rejected by server on status code 409.
* @return an embedding vector along with {@link Response} on successful completion of {@link Mono}.
*/
@Generated
@ServiceMethod(returns = ReturnType.SINGLE)
public Mono<Response<BinaryData>> getWithResponse(RequestOptions requestOptions) {
return this.serviceClient.getWithResponseAsync(requestOptions);
}

/**
* put an embedding vector.
* <p><strong>Request Body Schema</strong></p>
*
* <pre>{@code
* [
* int (Required)
* ]
* }</pre>
*
* @param body _.
* @param requestOptions The options to configure the HTTP request before HTTP client sends it.
* @throws HttpResponseException thrown if the request is rejected by server.
* @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401.
* @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404.
* @throws ResourceModifiedException thrown if the request is rejected by server on status code 409.
* @return the {@link Response} on successful completion of {@link Mono}.
*/
@Generated
@ServiceMethod(returns = ReturnType.SINGLE)
public Mono<Response<Void>> putWithResponse(BinaryData body, RequestOptions requestOptions) {
return this.serviceClient.putWithResponseAsync(body, requestOptions);
}

/**
* post a model which has an embeddingVector property.
* <p><strong>Request Body Schema</strong></p>
*
* <pre>{@code
* {
* embedding (Required): [
* int (Required)
* ]
* }
* }</pre>
*
* <p><strong>Response Body Schema</strong></p>
*
* <pre>{@code
* {
* embedding (Required): [
* int (Required)
* ]
* }
* }</pre>
*
* @param body _.
* @param requestOptions The options to configure the HTTP request before HTTP client sends it.
* @throws HttpResponseException thrown if the request is rejected by server.
* @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401.
* @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404.
* @throws ResourceModifiedException thrown if the request is rejected by server on status code 409.
* @return the response body along with {@link Response} on successful completion of {@link Mono}.
*/
@Generated
@ServiceMethod(returns = ReturnType.SINGLE)
public Mono<Response<BinaryData>> postWithResponse(BinaryData body, RequestOptions requestOptions) {
return this.serviceClient.postWithResponseAsync(body, requestOptions);
}

/**
* get an embedding vector.
*
* @throws HttpResponseException thrown if the request is rejected by server.
* @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401.
* @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404.
* @throws ResourceModifiedException thrown if the request is rejected by server on status code 409.
* @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
* @return an embedding vector on successful completion of {@link Mono}.
*/
@Generated
@ServiceMethod(returns = ReturnType.SINGLE)
public Mono<List<Integer>> get() {
// Generated convenience method for getWithResponse
RequestOptions requestOptions = new RequestOptions();
return getWithResponse(requestOptions).flatMap(FluxUtil::toMono)
.map(protocolMethodData -> protocolMethodData.toObject(TYPE_REFERENCE_LIST_INTEGER));
}

/**
* put an embedding vector.
*
* @param body _.
* @throws IllegalArgumentException thrown if parameters fail the validation.
* @throws HttpResponseException thrown if the request is rejected by server.
* @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401.
* @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404.
* @throws ResourceModifiedException thrown if the request is rejected by server on status code 409.
* @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
* @return A {@link Mono} that completes when a successful response is received.
*/
@Generated
@ServiceMethod(returns = ReturnType.SINGLE)
public Mono<Void> put(List<Integer> body) {
// Generated convenience method for putWithResponse
RequestOptions requestOptions = new RequestOptions();
return putWithResponse(BinaryData.fromObject(body), requestOptions).flatMap(FluxUtil::toMono);
}

/**
* post a model which has an embeddingVector property.
*
* @param body _.
* @throws IllegalArgumentException thrown if parameters fail the validation.
* @throws HttpResponseException thrown if the request is rejected by server.
* @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401.
* @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404.
* @throws ResourceModifiedException thrown if the request is rejected by server on status code 409.
* @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
* @return the response body on successful completion of {@link Mono}.
*/
@Generated
@ServiceMethod(returns = ReturnType.SINGLE)
public Mono<AzureEmbeddingModel> post(AzureEmbeddingModel body) {
// Generated convenience method for postWithResponse
RequestOptions requestOptions = new RequestOptions();
return postWithResponse(BinaryData.fromObject(body), requestOptions).flatMap(FluxUtil::toMono)
.map(protocolMethodData -> protocolMethodData.toObject(AzureEmbeddingModel.class));
}

@Generated
private static final TypeReference<List<Integer>> TYPE_REFERENCE_LIST_INTEGER = new TypeReference<List<Integer>>() {
};
}
Loading

0 comments on commit 6342400

Please sign in to comment.