Я создаю REST API и тестирую его с помощью Postman. У меня есть конечная точка, которая отлично работает, когда я тестирую ее, отправляя необработанные json данные, но я хочу расширить эту конечную точку и позволить ей принимать как json данные, так и принимать файл, поэтому я хотел проверить моя текущая конечная точка без каких-либо изменений, и посмотреть, получу ли я тот же результат, когда я протестирую свой API с использованием данных формы вместо JSON, но всегда выдает исключение 415.
На этом рисунке я сделать запрос с данными формы.
![Form-data request](https://i.stack.imgur.com/eHyxH.png)
И здесь я делаю запрос к той же конечной точке, но с json данными
![JSON post data request](https://i.stack.imgur.com/mOGs2.png)
Обратите внимание, что я не добавил никаких таможенных заголовков при отправке запросов, (10), который вы видите вверху, это Временные заголовки. Я также попытался добавить Content-Type: multipart / form-data, но получил тот же результат.
Вот код, стоящий за
PeopleController.cs
[HttpPost]
public ActionResult<PersonDto> PostPerson(PersonForCreationDto person)
{
var personEntity = _mapper.Map<Entities.Person>(person); //Maps PersonForCreationDto to Entites.Person. This is possible because of the mapping in PeopleProfile.cs
_personLibraryRepositry.AddPerson(personEntity);
_personLibraryRepositry.Save();
var personToReturn = _mapper.Map<PersonDto>(personEntity);
return CreatedAtRoute("GetPerson",
new { personId = personToReturn.PersonId },
personToReturn);
}
PersonForCreationDto
public class PersonForCreationDto
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string Address { get; set; }
public string ReasonsForBeingOnTheList { get; set; }
public ICollection<PictureForCreationDto> Pictures { get; set; }
= new List<PictureForCreationDto>();
}
PersonLibraryRepository.cs
public void AddPerson(Person person)
{
if (person == null)
{
throw new ArgumentNullException(nameof(person));
}
person.PersonId = Guid.NewGuid(); //API is responsibile for creating new IDS.
foreach (var picture in person.Pictures)
{
picture.PictureId = Guid.NewGuid();
}
_context.People.Add(person);
}