나는 Devise를 인증에 사용하는 Rails 4 기반 API를 가지고 있으며 각 API 호출을 인증하기 위해 user_token
및 user_email
이 필요합니다. 보낸 자격 증명은 해당 시점에 앱을 사용하는 사용자를 기반으로합니다.Spin.js의 Ajax 통합을 사용하여 각 API 호출에 추가 매개 변수를 전달할 수 있습니까?
프론트 엔드에 Spine.js를 사용하고 있으며 클라이언트 쪽에서 수행 한 각 AJAX 호출에 이러한 추가 매개 변수를 포함시키는 것이 가장 좋은 방법에 대한 조언을 듣고 싶습니다.
은 척추 내, 내가.
사용자가 로그인이 접근 방식의 몇 내 마음을 교차 때 내 API에 의해 반환에 필요한 세부 사항 (로컬 스토리지에) 지속되는 세션 모델을 가지고 ...
@url 속성을 통해,하지만 난
class User extends Spine.Model
@configure 'User', 'name', 'email', 'image_url'
@extend Spine.Model.Ajax
@url: '#{Spine.model.host}/users/?user_token=foo&user_email=bar'
이 ... 어쩌면 더 적절한 방법이
@url
방법을 확장하는 기본 모델을 생성하는 것입니다 ...과 같이, 각 모델에서 작동이를 수정해야 할 것 및 이 매개 변수를 각각 t에 추가합니다. 예. 내 다른 모델은 각각이 기본 모델에서 상속받을 수 있습니다.
마찬가지로 API 호출이 발생할 때마다 이러한 추가 매개 변수를 추가하는 데 사용하는 모델 함수를 각각 확장 할 수 있습니다. 예를 들어, 나는 @fetch()
함수를 확장 할 수 있습니다. 이런 식으로 뭔가 ...
class User extends Spine.Model
@configure 'User', 'name', 'email', 'image_url'
@extend Spine.Model.Ajax
@fetch (params) ->
params or=
data: {user_token: 'foo', user_email: 'bar'}
processData: true
super(params)
또는 제 3 생각 나는 완전히 그래서 어떤을 연장 할 필요가 없습니다, 각각의 API 호출의 끝에 내 추가 PARAMS를 추가 Spine.Model.Ajax
을 확장 떨어져 모델에서 그것을 추출 할 수 있는지이었다 모델 함수 중 하나만 사용하거나 심지어는 @url
속성을 사용하는 것이 좋습니다. 기본적으로이 함수는 필요한 추가 자격 증명을 제외하고는 어떻게 작동합니까?
또는 내 접근 방식이 완전히 잘못되었을 수 있으며 훨씬 간단한 것을 간과 할 수 있습니다 (희망 사항).
면책 조항 : 위의 코드 중 하나라도 테스트하지 않았으며 생각 프로세스 중에 메모를했습니다.
(당분간 DEV에서) 내 HTTP 호출 중 하나의 예는 다음과 같습니다 http://dev.myapp.com:5000/api/v1/posts?user_token=foobar&[email protected]
올바르게 이해한다면 AJAX 호출을 할 때 백엔드에 전달할 추가 매개 변수를 추가하고 싶습니까? http 호출의 예를 들려 줄 수 있습니까? 세 번째 아이디어는 아마도 가장 단순하고 가장 쉬울 것입니다. 뷰 코드에 params를 추가하는 것은 확실히 쉽습니다. – Beartech
@Beartech 예, 맞습니다.이 두 개의 추가 매개 변수를 사용하여 모든 통화를 추가하면됩니다. 필자는 모든 클래스에 대해 사용자 정의 함수를 작성하지 않고도 Spine을 사용하는 가장 좋은 방법에 대해 조언 한 직후입니다. 가능한 한 많이 Model API에서 제공되는 프레임 워크 함수를 사용하고 싶습니다. [http://spinejs.com/api/models](http://spinejs.com/api/models) – Pete