swagger-api / swagger-api/swagger-codegen

[typescript\angular2] Deal with 201 response status

Open
#4,397 10 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Client: TypeScript help wanted Issue: Bug
Dominant language
Mustache
Stars
17.8k
Forks
6k
PR merge metrics
No merged PRs in 30d

Description

Description

Currently, typescript\angular2 api.service.mustache template handles 204 responses status in order return an undefined value directly instead of call a response.json:

return this.createWithHttpInfo(user, passwd, extraHttpRequestParams)
            .map((response: Response) => {
                if (response.status === 204) {
                    return undefined;
                } else {
                    return response.json();
                }
            });

I've implemented an JAXRS RESt endpoint like this:

@Override
	public Response create(String username, String passwd) throws UsernameAlreadyExistsCommtyException, RepositorySystemException {
		String userId = this.userService.create(username, passwd);
		return Response.created(this.uriInfo.getAbsolutePathBuilder().path(userId).build()).build();
	}

As you can see, this method returns an create-201 response status code. So, there's no content inresponse's body. Instead, there's a location header.

Could you provide an straightforward approach to deal with this?

Swagger-codegen version

2.2.3-SNAPSHOT

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.

Research direction

The relevant entry point is the typescript\angular2 api.service.mustache template; compare its existing 204 handling with the described 201 response and Location header. Define and verify the generated client's expected 201 behavior, ensuring it does not attempt response.json() when the response has no body.

Written by the indexing model from the issue text.

Assessment

Tech stack
angular, typescript
Domain
api, tooling
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.