새 노드를 어떻게 게시합니까? 링크를 참조했습니다. 서비스 모듈. 노드를 만들기

다음을 포함하여 많은 링크를 참조했습니다.

Drupal 사이트에 새 노드를 POST하는 몇 가지 방법을 시도했지만 실패했습니다. 학생들의 이름, 나이, 성별, DOB를 저장하기위한 샘플 CCK를 만들고 일부 목록을 추가했습니다.

서비스 모듈 (D7)을 설치 및 구성하고 서비스에서 서비스 엔드 포인트를 작성했습니다.
예상대로 GET은 JSON에서 노드의 세부 정보를 얻는 가장 쉬운 방법입니다. http://localhost/drupal/services/node단순히 모든 노드를 나열했습니다.

POST 방법 을 사용하는 방법을 여전히 알 수 없습니다 .

  1. 이름이 john 인 학생을 검색하고 싶습니다 . 나는 노력했다 localhost/drupal/services/node&node[name]=john. 내가 사용 POST 남자가 성공하지 크롬에 대한 플러그인. 나는 또한 다른 방법을 시도했다.

  2. 나는 새 학생을 사이트에 성공적으로 추가하려고 시도했습니다.

아무도 위의 작업을 잘 수행하도록 안내 할 수 있습니까?

업데이트 :

article 유형의 새 노드를 추가하려고했습니다 . 잘 작동했습니다. 그러나 Department CCK 유형의 노드를 추가하려고 할 때 ” s : 22 :”CSRF 유효성 검사에 실패했습니다 “; “스크린 샷이 있습니다.

나는 https://drupal.org/node/2013781 링크를 갔다.

session = session_name = session_id를 따랐지만 여전히 오류가 발생합니다.
여기에 이미지 설명을 입력하십시오



답변

이것이 도움이되기를 바랍니다.

드루팔 7

사용되는 도구 :

  • 테스트 및 디버깅을위한 Firefox 포스터 애드온 다른 애드온도있을 수 있습니다. 그러나이 예제에서는 Firefox 추가 기능을 사용하고 있습니다.
  • 사용할 수있는 JSON 데이터를 편집하고 확인하는 데 도움을주기 위해
    • 링크를 사용하여 JSON 데이터를 편집하십시오.
    • 링크를 사용하여 JSON 데이터의 유효성을 검사하십시오.

HTTP 요청

  • HTTP 요청을하려면 Firefox 애드온 POSTER를 사용해야합니다 .

  • 클라이언트와 서버 간의 요청-응답에 일반적으로 사용되는 두 가지 방법은 다음과 같습니다.

    • 가져 오기
    • 우편
  • 애드온이 다운로드 된 후 Firefox 열기 -> 도구-> 포스터

  • 세션 인증 을 활성화해야 합니다 . 서비스 가 올바르게 구성된 후 노드를 작성하기 전에 로그인 해야합니다 . 로그인하면 노드를 만들 수 있습니다.

  • 로그인의 경우 http://XXXXXXXX.com/demo/rulebook/rulebook_endpoint/user/login 과 같은 URL을 사용하여 POST 메소드를 사용하십시오.

  • 유효한 사용자 인 경우 세션 ID 및 이름과 함께 사용자 세부 사항 을 리턴 합니다 . 유효하지 않은 경우 액세스 거부 를 리턴합니다.

  • POST HEADER에서 세션 이름과 ID를 사용하여 새 노드를 만들 수 있습니다

  • 이제 HEADER를 추가 한 후 HTTP POST 요청을 작성하고 사용자에게 노드 작성 권한이 있는지 확인해야합니다.

  • 노드가 생성되면 노드 링크로 응답을 얻습니다.

참고 : JSON에서 응답을 원하면 항상 URL 끝에 .json을 추가해야합니다. 예 : http://XXXXXXXX.com/test/endpoint/user.json 또는 http://XXXXXXXX.com/test/endpoint/node.json 또는 http://XXXXXXXX.com/test/endpoint/user/user_id .json 또는 http://XXXXXXXX.com/test/endpoint/node/node_id.json


답변

Drupal 7 및 서비스 7.x-3.x

1 단계 :user.login 사용자 이름과 비밀번호를 사용하여 리소스에 게시 요청을 보냅니다.

로그인에 성공하면 4 가지 속성을 가진 응답 객체를 얻게됩니다 :

  • session_name
  • 세 시드
  • 토큰
  • 사용자 (개체)

Google 크롬 우편 배달부 스크린 샷

2 단계 :node 헤더 2 개로 게시 요청 발행

  • 쿠키 : [session_name] = [sessid]
  • X-CSRF- 토큰 : [토큰]

Google 크롬 우편 배달부 스크린 샷


답변

REST API에 POST 를 수행하는 경우 URL이 아닌 POST 데이터 에 모든 것을 넣어야 합니다. 에서 우체부 당신은 형보다, 게시물에 대한 요청을 설정할 수 있습니다 아래 당신이 당신의 데이터 값을 추가 할 수 있습니다. 상태, UID, 언어, 유형, 제목 및 추가 값 을 추가하는 것을 잊지 마십시오 . 리소스 URL은이어야합니다 .x-www-form-urlencodedHOST/REST_API_PATH/node