[BUG] reopening 760 - in v7.0.0-beta.1.0.0 , serviceurl gets set to apim instance url

Open
#832 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
42/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Stale
Tech stack
azure, csharp, openapi
Domain
api, cloud

Research direction

Start by reproducing the extractor and publisher flow with the Petstore OpenAPI 3.x specification, then trace the publisher's API call sequence around the specification PUT and the serviceUrl update. Done means an empty Web service URL in the extracted artifact remains empty after publishing instead of being replaced with the APIM instance URL.

Written by the indexing model from the issue text.

Description

Release version

v7.0.0-beta.1.0.0

Describe the bug

@guythetechie
Bug 760 was slated to be resolved in v7alpha1.0.2
I tested this in v7.0.0-beta.1.0.0 and it doesn't work as expected.

Here is the scenario and how to reproduce the issue and possible root cause.
Scenario:
I imported an openapi spec petstore 3.x
Went into the APIM - API and cleared out "Web service URL"
Ran extractor . I can see in the extracted apiinformation.json serviceurl is not there.
So far everything look good.
I Publish back the artifact into APIM.
As I trace the API, I can get these steps happening

  1. makes a get call to get the DTO object for the API
  2. PUT call to API with "serviceUrl": null along with other properties
  3. Get call to DTO object. And I can see "serviceUrl": null, in response object
  4. PUT call to publish API specification.yaml .
  5. GET call to get DTO object of API. I can see in the response ""serviceUrl" getting set to apim URL

The issue is; the 4th API call where it PUT API spec, APIM would default serviceurl back to APIM instance URL
I think if you re-order the API call sequence it will work.
Basically the step 2 have to be executed between 4 and 5

Expected behavior

If serviceurl is empty on the extracted api artifact, publisher should publish the api with empty serviceurl

Actual behavior

publisher publishes the api spec as the last step and APIM set the serviceurl to apim instance as it's default behavior. If the sequence is re-ordered I believe the issue can be resolved

Reproduction Steps

import an openapi spec petstore 3.x
go into the APIM - API and clear out "Web service URL"
Ran extractor .Publish back the artifact into APIM.
Check APIM API again. The web service URL is the "apim instance url"

Dominant language
C#
Stars
448
Forks
247
PR merge metrics
No merged PRs in 30d

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from Azure/apiops

All issues in Azure/apiops

Similar issues

More C# issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.