Restore WizardAPI Service#1
Conversation
stex43
left a comment
There was a problem hiding this comment.
В целом неплохо, надеюсь, что таски и апишки стали после этого понятнее. :)
| Task<ClientResult<Elixir>> GetElixirAsync(string id); | ||
|
|
||
| // GET /elixirs?ingredient={ingredientName}&inventorFullName={inventorFullName} | ||
| Task<ClientResult<Elixir[]>> GetElixirAsync(string ingredientName, string inventorFullName); |
| Task<ClientResult<Wizard>> GetWizardAsync(string id); | ||
|
|
||
| // GET /wizards?firstName={firstName}&lastName={lastName} | ||
| Task<ClientResult<Wizard>> GetWizardAsync(string firstName, string lastName); |
There was a problem hiding this comment.
Не пробовал этот метод заюзать? :) Технически здесь GetWizardsAsync. Поэтому он у тебя упадёт
| // GET /wizards/{id} | ||
| Task<ClientResult<Wizard>> GetWizardAsync(string id); | ||
|
|
||
| // GET /wizards?firstName={firstName}&lastName={lastName} |
There was a problem hiding this comment.
В этом методе и в поиске эликсира по имени ингредиента и/или создателя, прикольнее использовать значения параметров по умолчанию, чтобы они были необязательными. Т.е. если тебе надо будет поискать эликсир только по имени ингредиента, тебе не надо будет передавать пустую строку или null вместо имени создателя, оно там автоматом подставится.
|
|
||
| // POST /feedback | ||
| // body : FeedbackInfo | ||
| Task<ClientResult<Uri>> CreateFeedbackAsync(FeedbackType feedbackType, string feedback); |
There was a problem hiding this comment.
Здесь я в целом предполагала возвращение просто ClientResult, не дженерик. Типа нам неинтересно, что нам там вернули в теле
| public interface IWizardClient | ||
| { | ||
| // GET /wizards/{id} | ||
| Task<ClientResult<Wizard>> GetWizardAsync(string id); |
There was a problem hiding this comment.
Здесь можно было в целом Guid id (да и везде здесь надо было Guid id, просто если бы я везде прописала Guid, не было бы возможности получить 400 от апишки)
| HttpResponseMessage response = await httpClient.PostAsync($"feedback/", stringContent); | ||
| response.EnsureSuccessStatusCode(); | ||
|
|
||
| if (response.IsSuccessStatusCode) |
There was a problem hiding this comment.
Постоянно повторяется этот кусочек кода про возврат ответа, попробуй вынести в отдельный метод
| return 0; | ||
|
|
||
| var elixirs = new List<Models.Elixir>(); | ||
| foreach (var elixir in wizard.Elixirs) |
There was a problem hiding this comment.
А можно просто запросить все эликсиры по имени-фамилии создателя
| var inventedElixirsResult = await wizardClient.GetElixirAsync("", | ||
| $"{wizard.FirstName} {wizard.LastName}"); | ||
| if (!inventedElixirsResult.IsSuccessful()) | ||
| return 0; |
No description provided.