Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[INTER-690] Response Transparency, re-written request handling logic #63

Merged
merged 20 commits into from
Jun 17, 2024

Conversation

TheUnderScorer
Copy link
Contributor

@TheUnderScorer TheUnderScorer commented May 23, 2024

This PR introduces couple of changes.
The main change is removal of swagger generated code used for sending requests. Right now this logic is written by hand.

I've tried to find a good balance between generated code that ensures that the SDK is in sync with our OpenAPI schema and manually written code that will be easy to maintain, and I've came up with the following solution:

  • Swagger is now used to generate code that doesn't contain much logic, but that makes our live easier when it comes to updating our SDK. Code that is generated includes "requestDefinition" which contains metadata for every endpoint, such as statusCode -> responseType mappings (only for error responses) and the request path parsing.
  • In addition, swagger now generates interface for our SDK, that we then have to implement manually. It's made in order to make sure that our SDK is always in sync with our API.
  • Our API is still backward compatible (one major change was the change of pointer in Model property of GenericSwaggerError which was required in order for the statusCode -> responseType mapping to work. This change was reflected in examples and readme.

Other changes included in this PR:

  • Synced with OpenAPI schema
  • Removed "optional" package
  • Updated generate.go to automatically update module version mentions on major releases.

@TheUnderScorer TheUnderScorer self-assigned this May 23, 2024
@TheUnderScorer TheUnderScorer force-pushed the feature/INTER-690-improvements branch 2 times, most recently from 10a018a to 2660efd Compare May 23, 2024 09:53

This comment has been minimized.

BREAKING CHANGE: optional pkg is no longer used in this SDK. Please pass native GO types instead.
@TheUnderScorer TheUnderScorer force-pushed the feature/INTER-690-improvements branch from c5fe241 to e1917e8 Compare May 24, 2024 06:08
@TheUnderScorer TheUnderScorer marked this pull request as ready for review May 24, 2024 06:28
@TheUnderScorer TheUnderScorer force-pushed the feature/INTER-690-improvements branch from e35b3dd to 00261dd Compare May 24, 2024 06:50
BREAKING CHANGE: when checking for too many requests error, please use `*sdk.ManyRequestsResponse`. For example:
```go
	response, httpRes, err := client.FingerprintApi.GetVisits(auth, visitorId, &opts)
	fmt.Printf("%+v\n", httpRes)
	if err != nil {
		switch err.(type) {
		case sdk.GenericSwaggerError:
			switch model := err.(sdk.GenericSwaggerError).Model().(type) {
			case *sdk.ManyRequestsResponse:
				log.Printf("Too many requests, retry after %d seconds", model.RetryAfter)
			}

		default:
			log.Fatal(err)
		}

	}
```
@TheUnderScorer TheUnderScorer force-pushed the feature/INTER-690-improvements branch from 00261dd to aaf0ca9 Compare May 24, 2024 06:52
README.md Show resolved Hide resolved
JuroUhlar
JuroUhlar previously approved these changes May 30, 2024
@TheUnderScorer TheUnderScorer changed the base branch from main to test May 31, 2024 10:25
@TheUnderScorer TheUnderScorer dismissed JuroUhlar’s stale review May 31, 2024 10:25

The base branch was changed.

sshelomentsev
sshelomentsev previously approved these changes Jun 3, 2024
sdk/api_fingerprint.go Show resolved Hide resolved
sdk/api_fingerprint.go Show resolved Hide resolved
sdk/request_utils.go Outdated Show resolved Hide resolved
sdk/api_fingerprint.go Show resolved Hide resolved
sdk/api_fingerprint_impl.go Outdated Show resolved Hide resolved
sdk/api_fingerprint_impl.go Outdated Show resolved Hide resolved
necipallef
necipallef previously approved these changes Jun 17, 2024
Copy link

This PR will create a major release 🚀

6.0.0 (2024-06-17)

⚠ BREAKING CHANGES

  • when checking for too many requests error, please use *sdk.ManyRequestsResponse. For example:
	response, httpRes, err := client.FingerprintApi.GetVisits(auth, visitorId, &opts)
	fmt.Printf("%+v\n", httpRes)
	if err != nil {
		switch err.(type) {
		case sdk.GenericSwaggerError:
			switch model := err.(sdk.GenericSwaggerError).Model().(type) {
			case *sdk.ManyRequestsResponse:
				log.Printf("Too many requests, retry after %d seconds", model.RetryAfter)
			}

		default:
			log.Fatal(err)
		}

	}
  • optional pkg is no longer used in this SDK. Please pass native GO types instead.

Features

  • add delete API (0e077c3)
  • add os Mismatch (30b0215)
  • add revision string field to confidence object (8a2f270)
  • re-write request handling logic (a16a611)
  • remove usage of github.com/antihax/optional package (62db97f)

Copy link

Wrong commit message format detected

We use Semantic Commit Messages in our project.

Warning
Probably you forgot to activate local git hooks.

Run the next command in the project root to activate local hooks:

sh ./install_hooks.sh

More info you can find in job logs

Commitlint Errors

@TheUnderScorer TheUnderScorer changed the title [INTER-690] Response Transparency, re-writed request handling logic [INTER-690] Response Transparency, re-written request handling logic Jun 17, 2024
@TheUnderScorer TheUnderScorer merged commit 4602eb0 into test Jun 17, 2024
8 of 9 checks passed
@TheUnderScorer TheUnderScorer deleted the feature/INTER-690-improvements branch June 17, 2024 14:01
@fingerprint-dx-team
Copy link

🎉 This PR is included in version 6.0.0-test.1 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

@fingerprint-dx-team
Copy link

🎉 This PR is included in version 6.0.0-test.1 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

2 similar comments
@fingerprint-dx-team
Copy link

🎉 This PR is included in version 6.0.0-test.1 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

@fingerprint-dx-team
Copy link

🎉 This PR is included in version 6.0.0-test.1 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

@fingerprint-dx-team
Copy link

🎉 This PR is included in version 6.0.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants