Поделиться через


Получение списка правил

Правила сгруппированы с использованием набора правил. Правило может не входить ни в какой набор правил или входить в несколько наборов правил. Используйте GET ,чтобы запросить получение списка всех доступных правил, правил в наборе правил или наборов правил, вызвав API-интерфейс [Geographical URI]/api/rule. Существует несколько вариантов вызова этого API-интерфейса, однако наиболее распространенным способом является получение списка правил для определенного набора правил.

Заметка

Для этого API требуется OAuth токен.

Заголовки

Полное имя Type Ожидаемое значение Обязательное?
Accept-Language строка Код языка (например, en-US). По умолчанию используется en-US. нет

Параметры

Полное имя Type Ожидаемое значение Обязательное?
ruleset строка Имя или идентификатор набора правил или список идентификаторов набора правил, или имена, разделенные запятой или точкой с запятой (например, "Средство проверки решений"). нет
includeMessageFormats bool Когда установлено значение true, список возможных вариантов сообщений включается в результаты запросов языков, если таковые имеются. Этот список полезен для переводов на несколько языков. Если не нужно, то не указывайте этот параметр или укажите значение false, так как этот параметр увеличивает размер ответа и может увеличить время обработки. нет

Ожидаемые ответы

Код состояния HTTP Сценарий Result
200 Один или несколько результатов были найдены См. пример далее в этой статье. Один или несколько результатов могут быть возвращены.
204 Результаты не найдены Нет результатов в тексте ответа.
401 Проверка подлинности не пройдена Нет результатов в тексте ответа.

Ожидаемый текст ответа

В следующей таблице представлена структура ответа на каждый запрос (только ответ HTTP 200).

Свойство Тип Ожидаемое значение Обязательное?
code строка Идентификатор правила, иногда называемый идентификатором правила. Да
сводка строка Краткое описание правила. Да
Описание строка Долее подробное описание правила. Да
guidanceUrl URI-адрес URL-адрес, по которому можно найти опубликованное руководство. В некоторых случаях нет специальной статьи с руководством по поддержке. Да
include логическое значение Сообщает службе о том, что правило должно быть включено в анализ. Это значение true для данного API. нет
messageTemplates массив Это значение свойства включено только тогда, когда свойство includeMessageFormats имеет значение true. Нет
messageTemplates.ruleId строка Возвращает то же значение идентификатора, что и свойство code. Да
messageTemplates.messageTemplateId строка Идентификатор, используемый в отчете формата обмена результатами статического анализа (SARIF) для обозначения варианта сообщения о проблеме для правила. Да
messageTemplates.messageTemplate строка Текст варианта сообщения для сценария проблемы, о котором сообщает правило. Это текст является строкой формата, которая может содержать токены, в которых аргументы, представленные в отчете SARIF, могут использоваться для создания подробного сообщения. Да

Пример: получить правила для набора правил на другом языке

В этом примере возвращаются данные для всех правил в наборе правил Средство проверки решений на французском языке. Если нужный язык — английский, просто удалите заголовок Accept-Language.

Запрос

GET [Geographical URI]/api/rule?ruleset=083A2EF5-7E0E-4754-9D88-9455142DC08B&api-version=2.0
x-ms-correlation-id: aaaa0000-bb11-2222-33cc-444444dddddd
Accept: application/json
Content-Type: application/json; charset=utf-8
Accept-Language: fr

ответ

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8

[
    {
        "description": "Ne pas implémenter d’activités de workflow Microsoft Dynamics CRM 4.0",
        "guidanceUrl": "https://go.microsoft.com/fwlink/?LinkID=398563&error=il-avoid-crm4-wf&client=PAChecker",
        "include": true,
        "code": "il-avoid-crm4-wf",
        "summary": "Ne pas implémenter d’activités de workflow Microsoft Dynamics CRM 4.0",
        "howToFix": {
            "summary": ""
        }
    },
    {
        "description": "Utiliser InvalidPluginExecutionException dans des plug-ins et activités de workflow",
        "guidanceUrl": "https://go.microsoft.com/fwlink/?LinkID=398563&error=il-use-standard-exception&client=PAChecker",
        "include": true,
        "code": "il-use-standard-exception",
        "summary": "Utiliser InvalidPluginExecutionException dans des plug-ins et activités de workflow",
        "howToFix": {
            "summary": ""
        }
    },
...
]

Пример: получить все

В этом примере возвращаются данные для всех доступных правил.

Запрос

GET [Geographical URI]/api/rule?api-version=2.0
Accept: application/json
Content-Type: application/json; charset=utf-8

ответ

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8

[
    {
        "description": "Retrieve specific columns for an entity via query APIs",
        "guidanceUrl": "https://go.microsoft.com/fwlink/?LinkID=398563&error=il-specify-column&client=PAChecker",
        "include": true,
        "code": "il-specify-column",
        "summary": "Retrieve specific columns for an entity via query APIs",
        "howToFix": {
            "summary": ""
        }
    },
    {
        "description": "Do not duplicate plug-in step registration",
        "guidanceUrl": "https://go.microsoft.com/fwlink/?LinkID=398563&error=meta-remove-dup-reg&client=PAChecker",
        "include": true,
        "code": "meta-remove-dup-reg",
        "summary": "Do not duplicate plug-in step registration",
        "howToFix": {
            "summary": ""
        }
    },
...
]

Пример: получить для набора правил с форматами сообщений

В этом примере возвращаются данные для всех правил в наборе правил Средство проверки решений на французском языке. Если нужный язык — английский, просто удалите заголовок Accept-Language.

Запрос

GET [Geographical URI]/api/rule?ruleset=083A2EF5-7E0E-4754-9D88-9455142DC08B&includeMessageFormats=true&api-version=2.0
Accept: application/json
Content-Type: application/json; charset=utf-8

ответ

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8

[
    {
        "description": "Do not implement Microsoft Dynamics CRM 4.0 workflow activities",
        "guidanceUrl": "https://go.microsoft.com/fwlink/?LinkID=398563&error=il-avoid-crm4-wf&client=PAChecker",
        "include": true,
        "code": "il-avoid-crm4-wf",
        "summary": "Do not implement Microsoft Dynamics CRM 4.0 workflow activities",
        "howToFix": {
            "summary": ""
        },
        "messageTemplates": [
            {
                "ruleId": "il-avoid-crm4-wf",
                "messageTemplateId": "message1",
                "messageTemplate": "Update the {0} class to derive from System.Workflow.Activities.CodeActivity, refactor Execute method implementation, and remove Microsoft.Crm.Workflow.CrmWorkflowActivityAttribute from type"
            },
            {
                "ruleId": "il-avoid-crm4-wf",
                "messageTemplateId": "message2",
                "messageTemplate": "Change the {0} property's type from {1} to {2} Argument <T> type"
            },
            {
                "ruleId": "il-avoid-crm4-wf",
                "messageTemplateId": "message3",
                "messageTemplate": "Replace the Microsoft.Crm.Workflow.Crm{0}Attribute with Microsoft.Xrm.Sdk.Workflow.{0}Attribute"
            },
            {
                "ruleId": "il-avoid-crm4-wf",
                "messageTemplateId": "message4",
                "messageTemplate": "Remove the {0} System.Workflow.ComponentModel.DependencyProperty type field"
            }
        ]
    },
    {
        "description": "Use InvalidPluginExecutionException in plug-ins and workflow activities",
        "guidanceUrl": "https://go.microsoft.com/fwlink/?LinkID=398563&error=il-use-standard-exception&client=PAChecker",
        "include": true,
        "code": "il-use-standard-exception",
        "summary": "Use InvalidPluginExecutionException in plug-ins and workflow activities",
        "howToFix": {
            "summary": ""
        },
        "messageTemplates": [
            {
                "ruleId": "il-use-standard-exception",
                "messageTemplateId": "message1",
                "messageTemplate": "An unguarded throw of type {0} was detected. Refactor this code to either throw an exception of type InvalidPluginExecutionException or guard against thrown exceptions of other types."
            },
            {
                "ruleId": "il-use-standard-exception",
                "messageTemplateId": "message2",
                "messageTemplate": "An unguarded rethrow of type {0} was detected. Refactor this code to either throw an exception of type InvalidPluginExecutionException or guard against thrown exceptions of other types."
            }
        ]
    },
...
]

См. также

Используйте Power Apps веб-API проверки
Получить список наборов правил
Загрузить файл
Вызов анализа
Проверить статус анализа