Contenuto della query

Il contenuto di un determinato frammento può essere recuperato in base all’ID del frammento.

GET /rest/asset/v1/snippet/{id}/content.json
{
   "success":true,
   "warnings":[ ],
   "errors":[ ],
   "requestId":"5c50#14b04376159",
   "result":[
      {
         "type":"HTML",
         "content":"draft testUpdateSnippetContent1 HTML Content"
      },
      {
         "type":"Text",
         "content":"draft testUpdateSnippetContent1 Text Content"
      }
   ]
}

La chiamata restituisce un elenco di sezioni di contenuto,  che sono costituite da sezioni di tipo HTML o DynamicContent e, facoltativamente, da una sezione con un tipo di testo.

Crea e aggiorna

I frammenti seguono il pattern di creazione delle risorse complesse, in cui la chiamata a create snippet e il relativo contenuto vengono eseguiti separatamente, pertanto la prima chiamata deve essere all'endpoint create, con una descrizione facoltativa.   I dati vengono passati come x-www-form-urlencoded, non come JSON.

POST /rest/asset/v1/snippets.json
Content-Type: application/x-www-form-urlencoded
name=Test Snippet 09 - deverly&folder={"id":395,"type":"Folder"}&description=This is a test snippet
{
    "success": true,
    "warnings": [],
    "errors": [],
    "requestId": "bd57#14e231ee3a1",
    "result": [
        {
            "id": 13,
            "name": "Test Snippet 09 - deverly",
            "description": "This is a test snippet",
            "createdAt": "2015-06-24T01:11:43Z+0000",
            "updatedAt": "2015-06-24T01:11:43Z+0000",
            "url": "https://app-abm.marketo.com/#SN13B2ZN395",
            "folder": {
                "type": "Folder",
                "value": 395,
                "folderName": "Snippets"
            },
            "status": "draft",
            "workspace": "Default"
        }
    ]
}

L’aggiunta o la sostituzione del contenuto in uno snippet viene eseguita per ID. Il contenuto può essere di tipo Testo, HTML o DynamicContent. Se il tipo è Testo, il parametro di contenuto è l’endpoint di testo normale; se invece è HTML, si tratta del testo di markup desiderato. Se il tipo è impostato su DynamicContent, il parametro di contenuto deve essere impostato sull'ID della segmentazione da associare al frammento.

POST /rest/asset/v1/snippet/{id}/content.json
Content-Type: application/x-www-form-urlencoded
type=HTML&content=draft testUpdateSnippetContent1 HTML Content
{
   "success":true,
   "warnings":[ ],
   "errors":[ ],
   "requestId":"73d9#14b04376139",
   "result":[
      {
         "id":82
      }
   ]
}

L'aggiornamento dei metadati viene eseguito anche dall'ID. È possibile aggiornare solo il nome e la descrizione:

POST /rest/asset/v1/snippet/{id}.json
Content-Type: application/x-www-form-urlencoded
name=Test Snippet&description=New Description
{
   "success":true,
   "warnings":[ ],
   "errors":[ ],
   "requestId":"9ad0#14b043762b1",
   "result":[
      {
         "id":82,
         "name":"Test Snippet",
         "description":"New Description",
         "createdAt":"2015-01-19T22:01:52Z+0000",
         "updatedAt":"2015-01-19T22:01:53Z+0000",
         "url": "https://app-abm.marketo.com/#SN3B2ZN395",
         "folder":{
            "type":"Folder",
            "value":662,
            "folderName": "Snippets"
         },
         "status":"draft",
         "workspace":"Default"
      }
   ]
}

Contenuto dinamico

I frammenti seguono il pattern standard per il contenuto dinamico, ma rappresentano una sola sezione di contenuto intera, pertanto ogni frammento può contenere solo una sezione dinamica, con un elenco di sezioni interne facoltativamente per ogni segmento nella segmentazione utilizzata. È possibile eseguire query sul contenuto dinamico solo tramite l'ID frammento, poiché in un frammento può essere presente una sola sezione di contenuto dinamico.

GET /rest/asset/v1/snippet/{id}/dynamicContent.json
{
    "success": true,
    "warnings": [ ],
    "errors": [ ],
    "requestId": "ae3#14c2b499111",
    "result": [
        {
            "createdAt": "2015-03-13T06:24:35Z+0000",
            "updatedAt": "2015-03-17T20:29:42Z+0000",
            "id": 70,
            "segmentation": 1001,
            "content": [
                {
                    "id": "Nzk*",
                    "segmentId": 1001,
                    "segmentName": "Area",
                    "content": "Sample HTML for Area",
                    "type": "HTML"
                },
                {
                    "id": "Nzk*",
                    "segmentId": 1001,
                    "segmentName": "Area",
                    "content": "Sample Text for Area",
                    "type": "Text"
                },
                {
                    "id": "Nzk*",
                    "segmentId": 1002,
                    "segmentName": "Default",
                    "content": "Sample HTML for Default",
                    "type": "HTML"
                },
                {
                    "id": "Nzk*",
                    "segmentId": 1002,
                    "segmentName": "Default",
                    "content": "Sample Text for Default",
                    "type": "Text"
                }
            ]
        }
    ]
}

Approvazione

Gli snippet dispongono di endpoint per l'approvazione, la revoca dell'approvazione e l'eliminazione delle bozze, che seguono il modello di risorsa standard. Lo stato di bozza di uno snippet deve essere quello di approvazione.

Approva

POST /rest/asset/v1/snippet/{id}/approveDraft.json
{
    "success": true,
    "warnings": [ ],
    "errors": [ ],
    "requestId": "11903#14db1af2f6c",
    "result": [
        {
            "id": 3,
            "name": "Test Snippet 02 - deverly",
            "description": "hey this is a test snippet!",
            "createdAt": "2015-06-02T00:32:37Z+0000",
            "updatedAt": "2015-06-02T00:32:37Z+0000",
            "url": "https://app-abm.marketo.com/#SN3B2ZN395",
            "folder": {
                "type": "Folder",
                "value": 395,
                "folderName": "Snippets"
            },
            "status": "approved",
            "workspace": "Default"
        }
    ]
}

Annulla approvazione

L'endpoint unapprove può essere utilizzato solo su snippet approvati.

POST /rest/asset/v1/snippet/{id}/unapprove.json
{
    "success": true,
    "warnings": [ ],
    "errors": [ ],
    "requestId": "7d20#14db1c7a2a9",
    "result": [
        {
            "id": 89,
            "name": "Test Snippet 01 - deverly",
            "description": "",
            "createdAt": "2015-05-15T19:01:22Z+0000",
            "updatedAt": "2015-05-15T19:07:07Z+0000",
            "url": "https://app-abm.marketo.com/#SN1B2ZN395",
            "folder": {
                "type": "Folder",
                "value": 395,
                "folderName": "Snippets"
            },
            "status": "draft",
            "workspace": "Default"
        }
    ]
}