have - jquery find




Aggiunta di un record con l'API GoDaddy (2)

Sto cercando di aggiungere un record A a un dominio utilizzando l'API di GoDaddy, ma ricevo un errore di risposta 422 (Unprocessable Entity) nella console del mio browser. Tuttavia, quando provo la richiesta utilizzando la documentazione di GoDaddy su https://developer.godaddy.com/doc#!/_v1_domains/recordAdd/ArrayOfDNSRecord ottengo un errore di risposta 404 con il corpo sottostante:

Parte della risposta all'errore:

{
  "code": "UNKNOWN_DOMAIN",
  "message": "The given domain is not registered, or does not have a zone file",
  "name": "_Class"
}

Il dominio in cui sto cercando di aggiungere il record A sicuramente esiste, quindi non so perché restituirebbe un errore 404. Non ho problemi a recuperare tutti i record A appartenenti al dominio utilizzando una richiesta GET, ma quando provo a eseguire la richiesta PATCH qui sotto ottengo gli errori.

C'è qualcosa di sbagliato nell'API di GoDaddy o c'è un problema con il modo in cui strutturo la mia richiesta?

Richiesta PATCH che restituisce un errore

$.ajax({
  type: 'PATCH',
  url: 'https://api.godaddy.com/v1/domains/{domain}/records',
  data: {
    'records': [{
      'type': 'A',
      'name': 'test',
      'data': '255.255.255.255'
    }]
  },
  headers: {
    'Authorization': 'sso-key {API_KEY}:{API_SECRET}'
  },
  success: function(body) {
    console.log(body);
  }
});

RICHIESTA che funzioni bene

$.ajax({
  type: 'GET',
  url: 'https://api.godaddy.com/v1/domains/{domain}/records/A',
  headers: {
    'Authorization': 'sso-key {API_KEY}:{API_SECRET}'
  },
  success: function(body) {
    $.each(body, function(i, v) {
      $('body').append('<p>Name: ' + v.name + '<br/>Data: ' + v.data + '</p>');
    });
  }
});

Ho stretto la mano per fare una richiesta jQuery al server api.godaddy.com tramite browser, e non sono sicuro che il server permetta il verbo PATCH per qualche ragione.

Ho provato questa richiesta di arricciatura e ho inserito con successo un nuovo record A per uno dei miei domini. Ho ottenuto oggetto vuoto = {} restituito dopo l'arricciatura.

L'ho anche dig e il record è lì dopo un paio di minuti:

curl -X PATCH https://api.godaddy.com/v1/domains/{domain}/records \
  -H 'Authorization: sso-key xyz:xyz' \
  -H 'Content-Type: application/json' \
  --data '[{"type": "A","name": "blnk1","data": "192.1.2.3","ttl": 3600}]'

  ~ dig blnk.{domain}
;; ANSWER SECTION:
blnk.{domain}. 3599 IN  A   192.1.2.3

Devi specificare anche il dominio:

$.ajax({
  type: 'PATCH',
  url: 'https://api.godaddy.com/v1/domains/{domain}/records',
  data: {
  'domain': '<domain>',
    'records': [{
       'type': 'A',
       'name': 'test',
       'data': '255.255.255.255'
    }]
  },
  headers: {
    'Authorization': 'sso-key {API_KEY}:{API_SECRET}'
  },
  success: function(body) {
    console.log(body);
  }
});

Si noti inoltre che il campo ttl opzionale deve essere almeno 600.





godaddy-api