C # создать JSON для вызова REST Api - PullRequest
0 голосов
/ 08 ноября 2018

Я пытаюсь создать проблему в Jira с помощью POST в C #. Вызов возвращает этот JSON:

{
   "fields": {
      "project":
      {
         "key": "BBR"
      },
      "summary": "REST ye merry gentlemen.",
      "description": "Creating of an issue using project keys and issue type names using the REST API",
      "issuetype": {
         "name": "Story"
      }
  }
}

Я хочу реализовать метод в C #, поэтому я создал класс JiraCreateIssueResponse:

{
        public List<string> Project { get; set; } = new List<string>();
        public string Summary { get; set; }
        public string Description { get; set; }
        public List<string> IssueType { get; set; } = new List<string>();
    }

и ниже у меня есть метод, в котором я пытался сделать конкретный вызов, используя заданные параметры:

JiraCreateIssueResponse JiraIssueParams = new JiraCreateIssueResponse
            {
                Project = { $"key = {ProjectKey}" },
                Summary = summary,
                Description = "",
                IssueType = { $"name = Story" }
            };

            RestRequest restRequest = GetRestRequest(Method.POST, $"{JiraConstants.Urls.Issue}", JiraIssueParams, null);

Тем не менее, я реализовал тест, который проверяет этот метод, и он выдает ошибку об десериализации, поэтому я пришел к выводу, что я плохо разбираю свой JSON. Кто-нибудь имеет представление о моей ошибке? Я пробовал другие способы реализации JSON и использования значений, но у меня была та же проблема.

Ответы [ 2 ]

0 голосов
/ 08 ноября 2018

Поскольку я не могу комментировать, и мы также используем Jira и используем API, здесь есть обертка вокруг API для c #: https://www.nuget.org/packages/Atlassian.SDK/ это сэкономит вам кучу работы - определенно для меня.

Сайт проекта размещен: на битбакете

0 голосов
/ 08 ноября 2018

Ваш класс должен выглядеть так:

public class JiraResponse
{
    public class JiraResponseProject
    {
        public string Key { get; set; }
    }

    public class JiraResponseIssueType
    {
        public string Name { get; set; }
    }

    private JiraResponseProject _project = new JiraResponseProject();
    private JiraResponseIssueType _issueType = new JiraResponseIssueType();

    public JiraResponseProject Project => _project;
    public JiraResponseIssueType IssueType => _issueType;

    public string Summary { get; set; }
    public string Description { get; set; }    
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...